微信扫码
与创始人交个朋友
我要投稿
在当今快速发展的技术领域,AI 已成为推动项目进展的重要力量。本文以一个聊天室项目的开发为例,详细探讨了 AI 在提升研发效率、赋能研发人员以及解决实际问题方面的多维度助力。从项目的初步构思到最终上线运营,AI 不仅显著缩短了开发周期,还降低了对研发人员技能的要求,使得项目能够顺利推进并成功应对各种挑战。此外,文章还展望了 AI 在未来研发工作中的提升方向,并提出了通过整合研发工具实现整体效率提升的新契机。
项目的整理过程,先有了python的单机demo工程,立项加上PRD评审,研发环境搭建跑通日常、(预发、正式,由于socket链接问题,一直没有跑通),出交互视觉稿和评审,核心产品功能的研发,socket链接问题的解决,内容安全接入绿网,redis和mysql和oss和登入等核心模块的改造成支持分布式系统,MVP产品的UAT,视觉验收,体验细节修改,mvp内部测试,发现两个类型的攻击代码注入和流量攻击,修复了攻击后重新上线,运营组织红包活动。(粗体部分AI都有不错的辅助作用)
效率提升显著
在聊天室项目从 0 构建的过程中,AI 展现出对整体项目效率的积极推动作用。编码环节效率因 AI 提升显著,而编码时长占技术研发总时长约三成,技术研发活动又占项目整体的大头,经综合计算,考虑到 AI 对其他工种也有一定辅助,其对项目效率的总体提升幅度可达 8% 以上。
赋能研发人员
AI 大幅降低了对研发人员能力的要求,从另一个角度而言极大地提升了研发人员的个人能力。在编码和问题排查方面尤为突出,如编写代码时,借助 AI 可快速生成基础代码框架,减少了研发人员的工作量与难度;在查问题时,AI 能够提供思路或直接指出可能存在的问题点。这使得研发人员能够将更多精力投入到更具创造性和复杂性的工作中,促进其在项目中的综合能力提升。
以下代码都是AI生成:
# 目标URL
url = "URL" # 将这里替换为实际的请求URL
# 请求参数
data = {
"type": "kfc",
"srcId": "1341325134",
"userId": 2341,
"userNick": "songwu",
"ip": "xxxxx",
"content": "违禁词",
"imageUrls": []
}
# 设置请求头,指定MIME类型
headers = {
"Content-Type": "application/x-www-form-urlencoded; charset=UTF-8"
}
try:
# 发送POST请求
response = requests.post(url, data=data, headers=headers)
# 如果请求成功(状态码为200),打印响应内容
if response.status_code == 200:
print(response.text)
else:
print(f"请求失败,状态码: {response.status_code}")
except requests.RequestException as e:
print(f"请求过程中发生错误: {e}")
make_post_request()import requests
def make_post_request():
# 目标URL
url = "url" # 将这里替换为实际的请求URL
# 请求参数
data = {
"type": "lvwang",
"srcId": "1341325134",
"userId": 2341,
"userNick": "songwu",
"ip": "xxxx",
"content": "违禁词",
"imageUrls": []
}
# 设置请求头,指定MIME类型
headers = {
"Content-Type": "application/x-www-form-urlencoded; charset=UTF-8"
}
try:
# 发送POST请求
response = requests.post(url, data=data, headers=headers)
# 如果请求成功(状态码为200),打印响应内容
if response.status_code == 200:
print(response.text)
else:
print(f"请求失败,状态码: {response.status_code}")
except requests.RequestException as e:
print(f"请求过程中发生错误: {e}")
if __name__ == "__main__":
make_post_request()
if __name__ == "__main__":
r = redis.Redis(host='xxx', port=xxx, password='XXXXXX')
r.ping();
r.set('message', 'Hello, Redis!')
value = r.get('message')
print(value.decode());
from flask import Flask, session
import redis
from flask_session import Session
app = Flask(__name__)
# 配置Session类型为redis
app.config['SESSION_TYPE'] = 'redis'
app.config['SESSION_KEY_PREFIX'] = config['redis_key_prefix']+'_session_'
# 配置Redis连接信息
app.config['SESSION_REDIS'] = redis.Redis(host='xxx', port=xxx, password='XXXXXXXXX') # 假设Redis运行在本地,端口为6379
app.secret_key = 'a_random_secret_key'
# 初始化Flask - Session
Session(app)
def redis():
if 'visit_count' in session:
session['visit_count'] += 1
else:
session['visit_count'] = 1
return f"你已经访问了这个页面 {session['visit_count']}次。"
if __name__ == '__main__':
app.run()
def create_connection(host_name, user_name,port, user_password, db_name):
""" 创建数据库连接 """
connection = None
try:
connection = mysql.connector.connect(
host=host_name,
port=port,
user=user_name,
password=user_password,
database=db_name
)
print("Connection to MySQL DB successful")
except Error as e:
print(f"The error '{e}' occurred")
return connection
def execute_query(connection, query):
""" 执行 SQL 查询 """
cursor = connection.cursor()
try:
cursor.execute(query)
connection.commit()
print("Query executed successfully")
except Error as e:
print(f"The error '{e}' occurred")
def read_query(connection, query):
""" 读取 SQL 查询结果 """
cursor = connection.cursor()
result = None
try:
cursor.execute(query)
result = cursor.fetchall()
return result
except Error as e:
print(f"The error '{e}' occurred")
if __name__ == "__main__":
# 创建数据库连接
connection = create_connection("pc-hp3je447929be49h3.mysql.polardb.huhehaote.rds.aliyuncs.com", "huxiaohang1212", 3306,"XXXXXXX", "chat_room")
if connection is not None:
# 执行创建表的查询
create_table_query = """
CREATE TABLE IF NOT EXISTS employees (
id INT AUTO_INCREMENT PRIMARY KEY,
name VARCHAR(255),
age INT,
position VARCHAR(255)
);
"""
execute_query(connection, create_table_query)
# 插入数据
insert_data_query = """
INSERT INTO employees (name, age, position) VALUES ('John Doe', 30, 'Developer'), ('Jane Smith', 25, 'Designer');
"""
execute_query(connection, insert_data_query)
# 查询数据
select_employees_query = "SELECT * FROM employees;"
employees = read_query(connection, select_employees_query)
for employee in employees:
print(employee)
else:
print("Failed to connect to the database.")
客户端
<html lang="en">
<head>
<meta charset="UTF-8">
</head>
<body>
</body>
<script>
const uri = "wss://pre-chatsocket.jianghu.taobao.com?connect=11.187.98.22:6789";
const websocket = new WebSocket(uri);
websocket.onopen = function () {
const message = "Hello, WebSocket server!";
websocket.send(message);
console.log(`Sent: ${message}`);
};
websocket.onmessage = function (event) {
console.log(`Received: ${event.data}`);
};
</script>
</html>
服务端
import asyncio
import websockets
async def echo(websocket, path):
async for message in websocket:
print(f"Received message from client: {message}")
await websocket.send(f"Echo: {message}")
async def main():
async with websockets.serve(echo, "", 6789):
print("WebSocket server started on ws://localhost:6789")
await asyncio.Future() # Run forever
if __name__ == "__main__":
asyncio.run(main())
import os
redisPort = os.getenv("redisPort")
print(redisPort)
from ratelimit import limits
import time
# 每分钟允许10个请求
def api_call():
print("请求被允许")
if __name__ == "__main__":
for _ in range(20):
try:
api_call()
except:
print("请求被限流")
time.sleep(1)
后续AI提升方向明确
尽管 AI 在研发工作中已发挥诸多作用,但仍有可提升空间。
其一,在生成代码时,目前还不能妥善处理依赖版本问题,这可能导致代码在集成或运行时出现兼容性错误,后续需重点攻克以提高代码生成的可用性。
其二,AI 难以处理上下游协作问题,研发工作往往涉及多环节多角色协作,AI 若能在这方面有所突破,将进一步优化整个研发流程。
其三,AI 出现自写代码自找 bug 的有趣现象,这表明其在自我检测和优化方面有一定潜力,可深入挖掘以构建更智能的代码编写与调试体系。
其四,国内AI模型对数学基础计算普遍都会出差,而gpt算出来的是正确,国内的模型在这个方面要加油。
通过该项目实践还发现一个提升阿里整体研发效率的机会,即研发工具 all in one。若有专业产品团队精心打造,有望实现至少 10% 的研发效率提升,其效果可与 AI 贡献相媲美。从项目中涉及的众多研发系统可以看出,当前研发平台与组织架构存在关联,但尚未合理抽象出一个完整的产品,若能整合优化,将为研发工作带来质的飞跃,而 AI 也可在其中发挥更大的作用,如协助进行系统整合、流程优化等工作,进一步推动研发效率的提升与创新发展。
53AI,企业落地应用大模型首选服务商
产品:大模型应用平台+智能体定制开发+落地咨询服务
承诺:先做场景POC验证,看到效果再签署服务协议。零风险落地应用大模型,已交付160+中大型企业
2024-07-07
2024-04-02
2024-06-24
2024-04-27
2024-06-06
2025-01-03
2024-04-02
2024-05-08
2024-05-04
2024-05-15