1. 程式人生 > >來自一個程序員的反思

來自一個程序員的反思

程序員

技術分享圖片

程序員大軍魚龍混雜,水平的高低無法簡單的從一個功能完成情況來評定,同樣一個需求,功能都可以完成,但是不同程序員完成質量會不一樣,完成質量的好壞需要從多方面評定,可以參考這些條件:易維護,易拓展,高可用,高穩定,高性能,安全性,容錯,風控


洞察身邊的程序猿,可以歸類出這幾種類型:

  • 理論型,理論能力很強,對前沿技術略有了解,性格比較強勢,需求分析和方案設計頭頭是道,對自己的設計的內容比較自信固執,反觀代碼,質量差的一匹,邏輯亂,難維護難拓展,但是往往這種在公司評級還都挺高
  • 潛力型,業務能力強,開發設計和問題排查思路清晰,可以提出優化/改進方案,能對業務適當抽象,自我技術要求比較高,代碼質量好,平時會調研前沿技術
  • 表面型,業務需求基本都可以完成,但是代碼質量比較差,bug多,問題排查效率低,難維護難拓展,很少了解前沿技術,空閑時間就刷刷微博,看新聞,聊天
  • 老實型,做事勤勤懇懇,代碼質量一般,平時表現比較不起眼,與同事溝通少,業余時間也不清楚具體在做什麽
  • 大神型,總結就是各方面都很NB,問啥都能給予建議或者解決方案,但是這種人很少

服務端開發工程師應該具有哪些能力?

身處互聯網公司的後端開發,所以用一個後端開發者角度出發

  • 基礎能力

    • 代碼規範
    • 分層清晰
    • 邏輯清晰
    • 數據庫操作
    • 了解http,能抓包工具和模擬請求工具
    • 了解前端/js,能使用瀏覽器控制臺工具調試
    • 安全預防
      • sql 註入
      • xss 跨站腳本攻擊
      • csrf 跨站請求偽造
      • http 劫持
      • ddos 攻擊
      • ... ...
  • 高級能力
    • 面向抽象編程
    • 適當使用設計模式
    • 模塊封裝
    • 異步編程
    • 多線程編程
    • 經驗
      • 高並發處理/優化
      • 性能優化(加載速度、提高接口tps 、... ...
      • 解析需求,能給予合理的建議和解決方案
    • 能靈活使用緩存:redis,memcache 等
    • 能靈活使用消息隊列中間件:rabbitmq,activemq,zeromq,kafka,等
  • 輔助能力
    • 爬蟲
      • 能開發爬蟲功能就代表對web這塊已經掌握比較好
    • 攻擊別人業務(適可而止,自行把握)
      • 手段
        • 模擬請求,尋找突破口,如:修改參數
        • 並發請求,導致並發邏輯問題。如:獲得多簽到積分(多數據操作接口可能會壓垮服務器)
        • 嘗試攻擊,sql註入,跨站腳本攻擊,等 ...
        • ...
      • 懂得攻擊別人,自己就知道如何防禦
  • 溝通能力
    • 成員溝通,討論設計方案,分享思路,技術點
    • 協作溝通,主動性很重要
  • 排錯能力
    • 問題反饋快速響應
    • 根據問題現象快速定位問題
    • 快速給出解決方案並上線,告知客服,反饋給用戶
  • 學習能力
    • 調研前沿技術並且最好是可以運用到項目業務中
    • 多語言開發:python,java,nodejs,php ... ...
      • 開發語言只是完成業務開發的工具,學習並在項目實踐,這樣才能從中學到東西
  • 預知能力
    • 代碼未來,方便業務拓展
    • 架構未來,方便架構拓展支撐業務增長
  • 架構能力
    • 分層
    • 分割
    • 分布式
    • 緩存
    • 集群
    • 異步
    • 沈余
    • 自動化
    • 安全

壞代碼味道

列出曾經遇到的比較典型的壞代碼味道截圖,引以為戒,BGM("多麽痛的領悟"),醒醒吧,別把自己想的多牛逼,先從代碼質量開始,拿著高薪,寫著學生水平的代碼人到處都是,遇到這樣的代碼請問要怎麽拓展?

  • 壞味道1 (分層不清,在控制層拼接sql)
    技術分享圖片

  • 壞味道2 (函數參數過多)
    技術分享圖片

  • 壞味道3 (過分深層)
    技術分享圖片

  • 壞味道4 (相同功能需要提取函數+過分深層)
    技術分享圖片

總結:

  • 無論你是什麽類型的程序員,期望你能夠對得住自己在崗位的這份責任
  • 多反思自省,反觀以前的代碼,肯定也是有些不合理的設計,總結並且沈澱

2018 新的一年,上班第一天,比較空閑,重新整理了下心情,拾起待寫的博文,把它完成,期望新一年我可以有更多的沈澱


原文地址

來自一個程序員的反思