程序員大軍魚龍混雜,水平的高低沒法簡單的從一個功能完成狀況來評定,一樣一個需求,功能均可以完成,可是不一樣程序員完成質量會不同,完成質量的好壞須要從多方面評定,能夠參考這些條件:易維護,易拓展,高可用,高穩定,高性能,安全性,容錯,風控php
洞察身邊的程序猿,能夠歸類出這幾種類型:前端
- 理論型,理論能力很強,對前沿技術略有了解,性格比較強勢,需求分析和方案設計頭頭是道,對本身的設計的內容比較自信執拗,反觀代碼,質量差的一匹,邏輯亂,難維護難拓展,可是每每這種在公司評級還都挺高
- 潛力型,業務能力強,開發設計和問題排查思路清晰,能夠提出優化/改進方案,能對業務適當抽象,自我技術要求比較高,代碼質量好,平時會調研前沿技術
- 表面型,業務需求基本均可以完成,可是代碼質量比較差,bug多,問題排查效率低,難維護難拓展,不多瞭解前沿技術,空閒時間就刷刷微博,看新聞,聊天
- 老實型,作事勤勤懇懇,代碼質量通常,平時表現比較不起眼,與同事溝通少,業餘時間也不清楚具體在作什麼
- 大神型,總結就是各方面都很NB,問啥都能給予建議或者解決方案,可是這種人不多
服務端開發工程師應該具備哪些能力?java
身處互聯網公司的後端開發,因此用一個後端開發者角度出發node
-
基礎能力 python
- 代碼規範
- 分層清晰
- 邏輯清晰
- 數據庫操做
- 瞭解http,能抓包工具和模擬請求工具
- 瞭解前端/js,能使用瀏覽器控制檯工具調試
- 安全預防
- sql 注入
- xss 跨站腳本***
- csrf 跨站請求僞造
- http 劫持
- ddos ***
- ... ...
- 高級能力
- 面向抽象編程
- 適當使用設計模式
- 模塊封裝
- 異步編程
- 多線程編程
- 經驗
- 高併發處理/優化
- 性能優化(加載速度、提升接口tps 、... ...
- 解析需求,能給予合理的建議和解決方案
- 能靈活使用緩存:redis,memcache 等
- 能靈活使用消息隊列中間件:rabbitmq,activemq,zeromq,kafka,等
- 輔助能力
- 爬蟲
- ***別人業務(適可而止,自行把握)
- 手段
- 模擬請求,尋找突破口,如:修改參數
- 併發請求,致使併發邏輯問題。如:得到多簽到積分(多數據操做接口可能會壓垮服務器)
- 嘗試***,sql注入,跨站腳本***,等 ...
- ...
- 懂得***別人,本身就知道如何防護
- 溝通能力
- 成員溝通,討論設計方案,分享思路,技術點
- 協做溝通,主動性很重要
- 排錯能力
- 問題反饋快速響應
- 根據問題現象快速定位問題
- 快速給出解決方案並上線,告知客服,反饋給用戶
- 學習能力
- 調研前沿技術而且最好是能夠運用到項目業務中
- 多語言開發:python,java,nodejs,php ... ...
- 開發語言只是完成業務開發的工具,學習並在項目實踐,這樣才能從中學到東西
- 預知能力
- 代碼將來,方便業務拓展
- 架構將來,方便架構拓展支撐業務增加
- 架構能力
- 分層
- 分割
- 分佈式
- 緩存
- 集羣
- 異步
- 沉餘
- 自動化
- 安全
壞代碼味道 程序員
列出曾經遇到的比較典型的壞代碼味道截圖,引覺得戒,BGM("多麼痛的領悟"),醒醒吧,別把本身想的多牛逼,先從代碼質量開始,拿着高薪,寫着學生水平的代碼人處處都是,遇到這樣的代碼請問要怎麼拓展?web
總結:
- 不管你是什麼類型的程序員,指望你可以對得住本身在崗位的這份責任
- 多反思自省,反觀之前的代碼,確定也是有些不合理的設計,總結而且沉澱
2018 新的一年,上班第一天,比較空閒,從新整理了下心情,拾起待寫的博文,把它完成,指望新一年我能夠有更多的沉澱
首發於本人獨立博客