<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

          最近的工作,變成了Python全棧工程師

          共 1599字,需瀏覽 4分鐘

           ·

          2021-01-17 16:39

          大家好我是螞蟻,本文不是廣告^_^


          實在是沒想到,工作快8年了,最近的工作變成了一個Python全棧工程師。


          Python在我8年工作經(jīng)歷中,一直都在使用,不過從來都不是主語言,我的主語言是JAVA,用Python會做不少"輔助"的事情,比如數(shù)據(jù)處理、定時任務(wù)、報表計算、Web頁面等等。


          半年前我跳槽到了當(dāng)前的新公司,是一名推薦系統(tǒng)架構(gòu)工程師。


          我的工作圍繞推薦系統(tǒng)工程架構(gòu)展開,大團(tuán)隊的編程語言用到了3個,分別是C++用于底層推薦引擎、JAVA用于業(yè)務(wù)對接、Python用于機(jī)器學(xué)習(xí)和模型部署。


          因為我所在的小組是推薦中臺,更加偏重部署流程化的事情,Pythong更適合這個場景,因此是主語言,而同時我也需要了解團(tuán)隊其他的技術(shù)也得掌握C++/JAVA,但它倆現(xiàn)在是副語言。


          從來沒想到,副語言竟然轉(zhuǎn)正了,每天寫的最多的代碼,變成了Python。


          而用Python開發(fā)的首要技術(shù)模塊,是Flask的Web服務(wù),這個服務(wù)會提供給公司的推薦算法使用,可以自動化的配置模型、發(fā)起上線部署流程,是一個公用的平臺。


          ## 分割線


          相對于Java/C++,Python在開發(fā)一個Web部署類產(chǎn)品上,有明顯的優(yōu)勢:


          ^_^,不由自主的又開始推銷Python,不過這次結(jié)合下我的工作


          1、開發(fā)非常快速


          相比JAVA/C++的語法,Python真的是簡潔明了,不用考慮類型適配,有大量的強(qiáng)大類庫支持,比如用Python實現(xiàn)下載、解壓、移動文件、上傳等等


          2、調(diào)試DEBUG方便


          如果要調(diào)試C++程序,即使一點點代碼,恐怕得花至少5分鐘去編譯、替換二進(jìn)制,并且只能通過打印日志的方式調(diào)試。


          JAVA其實在小項目DEBUG調(diào)試很方便,然而我們基礎(chǔ)架構(gòu)的JAVA是給第三方用的,結(jié)果也導(dǎo)致出問題DEBUG很麻煩。


          而用Python,哪里有問題,Pycharm打個斷點,幾分鐘就能揪出罪魁禍?zhǔn)祝袔讉€寫C++的同學(xué)用過幾次Python,簡直大呼過癮。


          3、一門語言搞定很多場景


          Python在我這里主要用于Flask Web開發(fā),但是它也承擔(dān)其他的事情,比如配合Pandas/Seaborn做數(shù)據(jù)分析可視化、同時用于tensorflow機(jī)器學(xué)習(xí)模型的訓(xùn)練代碼開發(fā),相對來說更加多能。


          ## 分割線


          然而,用Python開發(fā)Web項目,也會遇到一些問題:


          1、代碼難以規(guī)范、復(fù)雜模塊凌亂


          JAVA是代碼規(guī)范+結(jié)構(gòu)組織的典范,C++我敢說比Python更爛。


          而Python這門語言,入門特別容易,并且能快速參與項目開發(fā),很容易大家各自為政寫出不規(guī)范的爛代碼。


          最近在研讀谷歌的Python代碼規(guī)范,就是想建議大家把代碼寫的規(guī)范,別人更易讀和維護(hù)。


          谷歌Python規(guī)范文檔:

          https://google.github.io/styleguide/pyguide.html


          2、會遇到性能問題


          很多性能問題,其實是和編程語言無關(guān)的,而是和代碼本身的邏輯有關(guān)。


          然而,Python好像更容易出現(xiàn)這類問題。


          遇到了問題,需要通過閱讀代碼、性能分析等手段找到問題,然后解決。


          如果是并發(fā)問題,還要更多的深究多線程、多進(jìn)程、協(xié)程等機(jī)制。


          不過我反而也覺得這是個機(jī)遇,說明Python是可以深挖的、有能長期積累的技術(shù)方向。


          ## 分割線


          最后分享下,我現(xiàn)在工作用的Pythn用于Web的技術(shù)棧:


          網(wǎng)關(guān):Ngnix

          前端:vue.js

          后端:Flask,gevent.pyuwsgi,requests

          存儲:MySQL、本地文件

          分析:Pandas、Seaborn、Jupyter notebook

          模型:Tensorflow



          ## 分割線


          最后,謝謝大家訂閱我的公眾號。



          瀏覽 49
          點贊
          評論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報
          評論
          圖片
          表情
          推薦
          點贊
          評論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  婷婷伊人丁香 | 偷拍青青草| 69国精产品 | 91精品看片 | 对白av |