精品欧美一区二区三区在线观看 _久久久久国色av免费观看性色_国产精品久久在线观看_亚洲第一综合网站_91精品又粗又猛又爽_小泽玛利亚一区二区免费_91亚洲精品国偷拍自产在线观看 _久久精品视频在线播放_美女精品久久久_欧美日韩国产成人在线

第一次帶后端團隊,真實!

原創 精選
開發 項目管理
第一次帶團隊做項目對我來說是一次挑戰和提高。從技術層面講讓我以后面對技術選型時能以更高的角度看待問題;從個人角度講這是一次難得的機會讓我負責開發團隊,對接測試團隊、前端團隊、運維團隊等。這對我的溝通交流都是一次鍛煉。

作者 | 金色旭光

在過去的一個半月里我第一次作為后端開發組長角色參與公司項目從0到1的開發,記錄這一次開發的經歷。

1、背景介紹

首先說明一下背景。我所在的公司是做智慧社區相關業務,開發的項目是系統升級工具,方便公司實施同事安裝和升級系統。

參與后端開發一共四個人,包括我在內。其他三個同事有一個是應屆生、兩個做大數據的。按照公司的技術規劃,對內項目開發節奏要短平快,用Python語言完成,對外的項目一律用Java語言完成。

項目經過正常開發生命周期,包括需求采集、產品設計、系統設計、詳細設計、編碼、測試等過程。其中詳細設計就是針對接口做的詳細設計,一共用時3天完成,設計了45個功能點,包括40個接口和5個初始化準備工作。編碼用時計劃為3周。最終在時間點之內完成了相關的開發。

我在這次開發過程中擔任的是組長的角色,主要的任務包括:

(1)項目框架的搭建。本次開發是一個從0到1的過程,在此之前并沒有Python項目的框架。

(2)關鍵技術的實現。包括通用接口,復雜的技術點。

(3)任務分配。所有接口根據任務量分配給指定的成員,完成最多的接口開發。

2、項目框架搭建

Python做web開發常用的項目框架其實并不是很多,我的候選項有三個:

Django 前后端不分離框架、Flask 最容易上手的框架、FastAPI 異步高性能框架。

對比這三個框架,我從業務邏輯、公司技術棧、復雜度等三個角度出發,選擇了Flask。

業務邏輯

業務邏輯對性能并沒有特別要求,就是通過接口調用運維的ansible腳本,沒有高并發,計算密集等任務,所以三個都能滿足。

技術棧

公司技術棧是前后端分離,所以Django這種前后端不分離的框架并不適合,雖然Django也可以做純后端開發(防杠)。

復雜程度

復雜度來說肯定是Flask最簡單。Django號稱大而全,配置復雜。FastAPI是異步框架,需要學習異步編程,雖然用來做同步框架也很絲滑,但是學習成本需要增加很多。其他三個同事都沒有做過Python項目,所以盡量減少學習成本。

經過這三個方向的衡量,最終確定了Flask框架,搭配peewee orm數據庫框架。核心的技術包括:

(1)web框架 Flask

(2)數據庫ORM框架 peewee

(3)數據庫 sqlite

(4)運維腳本執行模塊 subprocess

(5)WSGI服務 Gunicorn

(6)代碼檢查工具pre-commit

在編碼前我已經準備好完整的項目框架,寫好了數據庫CRUD接口的demo,后續開發過程同事模仿相關接口,一定程度上提高了開發效率。

3、關鍵技術實現

帶團隊開發并且是帶領成員第一次做Python項目,自然要將有挑戰的任務安排給自己。在關鍵技術的實現上挑選三個有代表性的講解。三個分別是:系統命令執行通用接口、流式日志、sqlite 多線程寫問題解決。

系統命令通用接口

項目主要用于公司開發的其他系統安裝和升級,因此需要調用運維人員用ansible編寫的相關腳本。調用的ansible腳本格式如下:

ansible-playbook 03.mysql.yml
ansible-playbook 08.zk.yml

需要到指定的路徑下執行如上的命令。在詳細設計階段就知道需要使用Python調用系統命令的工具,所以就讓應屆生同事調研了subprocess模塊,輸出相關文檔。一來是給新人一個學習方向,再則借這個機會熟悉項目需要的技術。

在開發階段根據對相關模塊的理解,完成了通用接口的開發。寫通用接口切忌朝令夕改,依賴它的代碼也要隨之變化。一兩次還能接受,次數多估計要被問候祖宗了。所以該接口實現程度不僅僅是寫完,而且是自己親自調用,確認沒有問題才宣告完成。

在沒有完成之前耐著性子調試,直到沒有任何問題才在群里告訴其他開發人員。整個系統中需要大量的調用該命令執行腳本,最終也都比較順利的完成,沒有因為接口造成的bug。

流式日志

按照產品的設計,當一個組件在安裝時需要在web頁面上展示日志,并且日志的格式要和終端中安裝日志一樣,也就是一行一行的滾動打印。產品對日志的要求是全量滾動展示,刷新頁面要能夠再次全量展示出來。為了實現該功能,調研了三個方案:

一、定時刷新。缺點:日志有幾萬行,每一次讀取全部日志給前端,前端會卡頓,而且打印也不連續,體驗不好。

二、websocket。可以完成后端向前端的主動推送,但是刷新頁面并不會從頭開始推送。

三、流式響應。可以將大塊文件切分成小塊分批傳給前端,刷新頁面時會再次從頭開始推送,符合要求。

經過對比最終使用了流式響應,也就是ChatGPT那種響應的方式。但是需要解決一個問題:什么時候結束推送?因為安裝一邊向文件中寫入日志,流式日志一邊讀出日志,如果日志已經讀完了安裝還沒結束,那這個時候肯定需要等待而不是停止響應。

解決辦法是在安裝完成之后插入標記字符,當流式日志讀取到標記字符時就表明結束了,沒有讀取到標記字符則等待。核心代碼如下:

def log_flow():
    query = request.values
    log_path = query["log_path"]

    def generate():
        with open(log_path, "r") as f:
            while True:
                chunk = f.read(800)
                if not chunk or chunk.isspace():
                    time.sleep(0.1)
                if chunk == 800 * "-":
                    break
                content = json.dumps({"content": chunk})
                yield f"event: message\ndata: {content}\n\n"
                time.sleep(0.05)

return Flask_response(generate(), mimetype="text/event-stream"

效果:

sqlite3 多線程寫問題

在數據庫存儲這一塊,領導欽定用sqlite3,咱也據理力爭過用MySQL,but無效。領導說該項目只需要一個輕量的數據庫即可,sqlite3輕量,所以就很合適。而且其他項目中已經使用的非常成熟了。好吧,既然領導堅持,我也只能硬著頭皮上了。

開始還沒問題,到了項目開發中后期就發現問題了,接口經常報錯:

File "/home/ljk/.virtualenvs/idt_dev/lib/Python3.8/site-packages/peewee.py", line 3246, in execute_sql
cursor.execute(sql, params or ())
File "/home/ljk/.virtualenvs/idt_dev/lib/Python3.8/site-packages/peewee.py", line 3014, in __exit__
reraise(new_type, new_type(exc_value, *exc_args), traceback)
File "/home/ljk/.virtualenvs/idt_dev/lib/Python3.8/site-packages/peewee.py", line 192, in reraise
raise value.with_traceback(tb)
File "/home/ljk/.virtualenvs/idt_dev/lib/Python3.8/site-packages/peewee.py", line 3246, in execute_sql
cursor.execute(sql, params or ())
peewee.OperationalError: database is locked

查詢之后發現是sqlite3不支持多線程寫。sqlite3支持事務,是用庫鎖來完成的。當一個寫入開始后,整個數據庫都加鎖了,再次有寫操作就會報錯。

這個問題首先從技術上是不好解決的,sqlite3的架構設計就是如此,還能讓它支持多線程寫嗎?只能通過業務邏輯解決。經過一次會議討論之后,得出幾個解決方法:

  • 分庫。將寫操作分到不同的庫里完成。既然寫操作會鎖庫,那就分出不同的庫,就能避免鎖庫的問題。
  • 全局寫隊列。將所有的寫放到一個消息隊列里面,將多線程的寫變成串行的寫。
  • 全局寫標識。所有的寫操作開始前判斷是否有可寫標識,能寫入就寫入,否則接口返回,告訴前端數據庫繁忙。

經過投票,大家一致決定用第三種方式實現,技術難度最小,代碼侵入性最少。因為第三種方案是我提出來的,所以最終由我來完成。具體的過程可參見另一篇文檔《peewee操作sqlite鎖表問題分析》。

最終是解決了該問題,雖然不是優雅,但是在目前的時間成本和風險控制上局部是最優解了。后續將調研peewee這個ORM框架提供的sqliteQueueDatabase實現寫隊列。

摘錄于peewee擴展插件playhouse:

SqliteQueueDatabase可作為常規SqliteDatabase。如果你想簡單點 read and write 從訪問sqlite數據庫多線程.

SQLite在任何給定的時間只允許一個連接寫入數據庫。因此,如果您有一個多線程應用程序(例如Web服務器)需要寫入數據庫,當一個或多個嘗試寫入的線程無法獲取鎖時,您可能會偶爾看到錯誤。

SqliteQueueDatabase 旨在通過一個長期存在的連接發送所有寫查詢,從而簡化操作。好處是,您可以看到多個線程在向數據庫寫入時沒有沖突或超時。但是,缺點是您不能發出包含多個查詢的寫事務——本質上,所有寫操作都在自動提交模式下運行。

4、個人感受

第一次帶團隊開發,才明白很多事情。

做項目的主人公

第一真正理解什么叫主人公意識。各種文章都說要對項目有主人公意識才能成長更快。我感覺只有站在這樣一個位置上才能感受到這種意識。

項目進度的第一責任人就是你,項目中出現了大大小小的問題都是找你。領導會問題項目進度如何,有沒有阻塞,能不能按期完成?隊員會問這個校驗框架是否ok?這個語法有沒有問題?測試會找你說這個bug該給誰的?所以你必須對這個項目了如指掌,小到代碼的一個配置項,大到工程進度的把控。開發過程中有任何問題都得及時頂上,組長就是一塊磚,哪里需要哪里搬~

團隊和諧

再說說團隊的和諧。以前做一個小開發,只要完成自己的任務就可以了,團隊的氛圍影響我寫代碼的速度嗎?帶團隊開發就不一樣。團隊中有各種特點的同事,有埋頭苦干不匯報進度的、有能力強脾氣差的、有脾氣好進度慢的。總之各種性格的人都會存在。

本次開發中就遇到了一個能力強脾氣差的,看到技術上小問題就直接群里開懟,誰不是熱血小青年?第一次遇到這種情況可想而知。領導不得不為此找我們談話一兩次,甚至驚動了大部門領導。那段時間團隊氛圍特別差,沒有人說話。我也不敢多說什么,害怕氣氛更差,項目不能如期完成,到那個時候不是我的問題也變成我的問題了。所以只能選擇忍一忍,盡量回避分歧。好在領導的談話起到很大的作用,該安撫的安撫,該批評的批評,后來也沒有發生語言的沖突,順利按期完成項目。

總結

第一次帶團隊做項目對我來說是一次挑戰和提高。從技術層面講讓我以后面對技術選型時能以更高的角度看待問題;從個人角度講這是一次難得的機會讓我負責開發團隊,對接測試團隊、前端團隊、運維團隊等。這對我的溝通交流都是一次鍛煉。

最后,希望下一次做的更好,讓所有組員都能有一些進步。

責任編輯:武曉燕 來源: 51CTO技術棧
相關推薦

2011-07-21 21:01:37

諾基亞塞班蘋果

2017-03-22 15:38:28

代碼架構Java

2012-04-13 10:11:58

Windows 8泄露

2022-03-16 14:59:28

打包debian模板文件

2022-08-15 08:16:56

shiroWeb認證

2022-06-21 09:26:28

開源項目PR

2021-02-05 08:35:21

私活程序員

2015-10-26 16:38:17

2024-07-09 10:20:05

VueJSX函數

2022-05-06 11:27:23

虛擬人白皮書行業

2013-05-13 11:35:53

獨立開發開發經驗開發感悟

2018-09-11 17:05:12

戴爾

2024-01-03 21:50:32

緩存機制請求

2013-06-03 09:28:49

游戲設計

2010-05-27 10:00:09

2012-01-18 11:18:12

Web App

2018-08-15 10:34:30

戴爾

2013-02-25 09:43:22

LambdasJava8

2017-08-08 12:50:51

Serverless云端數據庫

2018-11-21 14:51:00

Windows 功能系統
點贊
收藏

51CTO技術棧公眾號

国产最新在线| 国产精品国产av| 亚洲第一二三区| 欧美伊人久久大香线蕉综合69| 亚洲欧美综合一区| 国模私拍视频在线| 日韩国产欧美在线视频| 理论片在线不卡免费观看| 好吊色视频一区二区三区| 国产成+人+综合+亚洲欧美| 一区二区三区日韩在线观看| 欧美在线视频一区二区三区| 国产v在线观看| 视频一区二区中文字幕| 欧美高跟鞋交xxxxhd| 一区二区黄色片| 国产福利资源一区| 在线观看国产日韩| 国产精品入口芒果| 国产三区在线观看| 国产午夜精品一区二区| 99影视tv| 一级全黄裸体免费视频| 久久九九99| 欧美激情奇米色| 亚洲人与黑人屁股眼交| 夜夜躁狠狠躁日日躁2021日韩| 日韩一区二区三免费高清| 777米奇影视第四色| 中文在线免费| 国产精品久久久一本精品| 久久er99热精品一区二区三区| 国产免费无遮挡| 美女一区二区视频| 国产成人精品免高潮在线观看| 国产一国产二国产三| 亚洲激情五月| 久久在线精品视频| 亚洲 欧美 国产 另类| 欧美日韩激情在线一区二区三区| 日韩av在线导航| 扒开伸进免费视频| 伊人久久影院| 日韩一区二区三区在线| 手机免费看av网站| gogo大尺度成人免费视频| 欧美性大战xxxxx久久久| 50路60路老熟妇啪啪| 狠狠操一区二区三区| 性欧美疯狂xxxxbbbb| 白白操在线视频| 天堂av资源在线观看| 亚洲美女免费视频| 日本成人在线不卡| 中文在线手机av| 亚洲国产毛片aaaaa无费看| www.黄色网址.com| 182tv在线播放| 亚洲欧美另类综合偷拍| 特级西西444| 国模私拍视频在线播放| 亚洲午夜久久久久久久久久久 | 欧美中文字幕一区二区三区亚洲| 国产中文字幕视频在线观看| 欧美13videosex性极品| 色诱视频网站一区| 午夜视频你懂的| 久久久国产精品网站| 91精品国产一区二区| 三上悠亚 电影| 久久精品国产亚洲blacked| 亚洲精品电影网| 亚洲国产天堂av| 久久亚洲国产| 九九热精品视频国产| 日韩av在线电影| 亚洲在线一区| 国产精品视频99| av中文字幕免费| 成人成人成人在线视频| 精品久久一区二区三区蜜桃| 久久精品色图| 亚洲欧美一区二区视频| 欧美日韩视频免费| 黑人巨大亚洲一区二区久| 精品视频一区二区不卡| 成人做爰69片免费| 国产99久久精品一区二区300| 中文字幕久久亚洲| a在线视频播放观看免费观看| 亚洲国产高清一区二区三区| 国产成人精品久久久| 国产免费一区二区三区免费视频| av在线一区二区| 一区二区在线观| 国产区美女在线| 色av一区二区| 欧美图片自拍偷拍| 欧美在线免费看视频| 欧美日本中文字幕| 波多野结衣av无码| 国产成人精品免费| 日韩hmxxxx| 欧美寡妇性猛交xxx免费| 色婷婷激情久久| 特种兵之深入敌后| 国产一区二区欧美| 久久免费视频网| 91色在线播放| 91麻豆免费观看| 日韩视频 中文字幕| 国产经典一区| 日韩国产高清污视频在线观看| 夫妻性生活毛片| 另类天堂av| 国产精品加勒比| 午夜伦理在线| 日韩欧美国产高清91| 九色91porny| 欧美电影《睫毛膏》| 欧美一级高清免费| 亚洲女人18毛片水真多| 国产精品久久一级| 久久久精品麻豆| 香蕉久久夜色精品国产使用方法 | 国产成人av影院| 亚洲国产高清国产精品| 久久久男人天堂| 精品国产网站在线观看| 日韩黄色免费观看| 国产一区激情在线| 亚洲一区二区在线免费观看| 三上悠亚国产精品一区二区三区| 亚洲精品一区在线观看| 丰满少妇被猛烈进入一区二区| 日本不卡一区二区| 日本亚洲自拍| 日韩性xxx| 国产亚洲日本欧美韩国| 销魂美女一区二区| 久久久精品国产免大香伊| 黄色片视频在线免费观看| 牛牛精品成人免费视频| 97国产suv精品一区二区62| 国产91麻豆视频| 亚洲图片欧美视频| 中文字幕人妻熟女在线| 精品91在线| 国产一区二区三区奇米久涩| av免费在线视| 亚洲精品720p| 日本一区二区三区精品| ww亚洲ww在线观看国产| 不卡影院一区二区| 欧美呦呦网站| 成人写真福利网| 成人看av片| 欧美成人三级电影在线| 国产在线成人精品午夜| av电影在线观看一区| 337p粉嫩大胆噜噜噜鲁| 国产一区二区区别| 国产剧情久久久久久| 成人免费在线| 亚洲国产美女久久久久| 在线观看日韩中文字幕| 国产欧美一区二区在线| 中文字幕66页| 国产精品红桃| 欧美亚洲一级二级| 香蕉成人在线| 97视频免费在线观看| 国产午夜在线视频| 欧美人成免费网站| 久久久精品99| 久久久久久久免费视频了| 日本在线一二三区| 欧美日韩一区二区国产| 久久综合九九| 亚洲国产91视频| 欧美激情免费看| 国产系列在线观看| 日韩一区二区三区av| av图片在线观看| 最新久久zyz资源站| 国产伦精品一区三区精东| 亚洲永久在线| 国产精品jizz在线观看老狼| 大桥未久女教师av一区二区| 国产精品va在线| 秋霞在线视频| 亚洲天堂av女优| 午夜精品久久久久久久99热黄桃 | 97精品一区二区三区| 成人在线观看网站| 欧美草草影院在线视频| 无码人妻精品一区二区| 亚洲精品第一国产综合野| 波多野结衣办公室33分钟| 久久成人av少妇免费| 18禁免费观看网站| 亚洲国产日韩欧美在线| 欧美精品中文字幕一区二区| 久久wwww| 国产精品日韩在线| 18aaaa精品欧美大片h| 日韩一区二区三区在线播放| 天天av天天翘| 91精品免费在线| 青青草视频在线观看免费| 亚洲自拍欧美精品| 老熟妻内射精品一区| 久久这里都是精品| 五月天丁香社区| 精品一区二区精品| www.色就是色| 免费日韩视频| 国产原创中文在线观看| 久久久久久久久久久久久久| 日韩一区免费观看| 秋霞影视一区二区三区| 成人动漫视频在线观看完整版| 视频欧美精品| 国产剧情日韩欧美| 欧美xxxx做受欧美护士| 5252色成人免费视频| 丰满大乳少妇在线观看网站| 久久大大胆人体| 91在线播放网站| 一本一道久久a久久精品逆3p| 天堂在线中文字幕| 亚洲国产精品女人久久久| 国产夫妻自拍av| 91精品国产91久久久久久最新毛片| 男人天堂视频在线| 日韩欧美国产激情| 久久久久在线视频| 欧美日韩在线视频观看| 日本一级一片免费视频| 五月婷婷综合在线| 日本污视频在线观看| 亚洲大型综合色站| www.av视频在线观看| 尤物av一区二区| 青春草免费视频| 亚洲一区二区美女| 国产在线视频二区| 亚洲一区二区成人在线观看| 精品无码久久久久| 精品国产成人在线| 亚洲 欧美 日韩 综合| 精品国产乱码久久久久久天美 | 黄色av免费播放| 国产精品久线在线观看| 日本裸体美女视频| 亚洲精品国产高清久久伦理二区| 杨钰莹一级淫片aaaaaa播放| 一区二区三区四区不卡视频| 久久高清免费视频| 欧美视频一二三| 国产成人精品777777| 欧洲人成人精品| 在线免费观看视频网站| 欧美一区二区三区在线观看视频 | 亚洲精品自在久久| 国产资源在线看| 最新中文字幕亚洲| 在线看一级片| 日本不卡高字幕在线2019| 黄色精品视频| 亚洲综合色av| 欧美成人午夜77777| 日韩wuma| 国产一区激情| 成人在线免费播放视频| 老司机精品视频一区二区三区| 超级砰砰砰97免费观看最新一期 | 忘忧草在线影院两性视频| 日韩美女av在线免费观看| 男女啪啪999亚洲精品| 岛国一区二区三区高清视频| 亚洲欧美成人vr| 超碰成人在线免费观看| 136国产福利精品导航网址| 黄色片在线免费| 国产suv精品一区二区6| 久久精品无码一区| 亚洲男同1069视频| 香蕉影院在线观看| 欧美丰满少妇xxxxx高潮对白 | 午夜精品免费观看| 欧美一区二区三区在线电影 | 久久精品国产99国产精品澳门| h片视频在线观看| 国产精品久久久亚洲| 大奶在线精品| 中文字幕乱码一区二区三区 | 国产91色在线| 中文字幕日韩高清在线| 日韩av电影免费观看| 亚洲网站啪啪| 爱豆国产剧免费观看大全剧苏畅| 91社区在线播放| 男女免费视频网站| 欧美日韩在线播放| 日韩大片b站免费观看直播| 久久夜色撩人精品| 日韩成人亚洲| 久久综合中文色婷婷| 午夜欧美视频| 在线黄色免费看| 欧美精彩视频一区二区三区| 国内免费精品视频| 日韩免费视频一区| 日本精品一区二区三区在线播放| 欧美最猛黑人xxxx黑人猛叫黄| 日韩视频一二区| 伊人婷婷久久| 日韩电影网1区2区| www.色多多| 性做久久久久久| 亚洲精品国产suv一区| 久久精品视频在线播放| 日韩伦理三区| 欧美激情国产日韩| 99热精品在线观看| 黄色av电影网站| 亚洲精品国产视频| av资源免费看| 久久网福利资源网站| 免费成人毛片| 中国成人在线视频| 美日韩一区二区三区| wwwww黄色| 欧美系列一区二区| 超碰在线国产| 国产精品一区二区性色av| 精品亚洲成人| 另类小说第一页| 日本一区二区综合亚洲| 无码人妻久久一区二区三区| 亚洲精品自拍第一页| 日韩av一卡| 日本不卡在线观看| 三级不卡在线观看| 精品熟妇无码av免费久久| 欧美日韩欧美一区二区| 婷婷激情在线| 91在线看www| 国产精品成人一区二区网站软件| 欧美人与性动交α欧美精品| 亚洲精品中文字幕乱码三区| 国产成年妇视频| 欧美精品久久久久久久久久| 国产区精品视频在线观看豆花| 少妇人妻大乳在线视频| 成人av片在线观看| 国产高清中文字幕| 国产亚洲精品成人av久久ww| 婷婷久久免费视频| 日本中文字幕在线视频观看| a亚洲天堂av| 国产精品国产精品国产| y97精品国产97久久久久久| 久久中文字幕一区二区| 大西瓜av在线| 久久久五月婷婷| 一级成人免费视频| 欧美国产日韩免费| 五月国产精品| 最新免费av网址| 亚洲国产日韩精品| 国产美女视频一区二区三区| 国产中文日韩欧美| 亚洲视频狠狠| 怡红院一区二区三区| 91麻豆精品国产91久久久久久 | 豆国产97在线| 亚洲欧美日韩国产一区二区| www久久久久久久| 精品三级在线观看| 国产精欧美一区二区三区蓝颜男同| 亚洲一区综合| 99久久精品国产一区二区三区| 亚洲精品国产欧美在线观看| 欧美成人激情视频| 一道在线中文一区二区三区| 三日本三级少妇三级99| 欧美视频专区一二在线观看| 女女色综合影院| 精品国产91亚洲一区二区三区www| 日本视频在线一区| 久久免费视频精品| 色偷偷91综合久久噜噜| 国产精品videossex| 九色porny自拍| 欧美日韩免费一区| 亚洲奶水xxxx哺乳期| 日本中文不卡| 91一区二区三区在线观看|