程序員的自我修養——遠離“外包思維”

*************************************優雅的分割線 **********************************

分享一波:程序員賺外快-必看的巔峰干貨

在我們做開發的日子里,不免會進行跳槽,跳來跳去公司無非就分成兩大類——互聯網公司、外包公司。當然我們本次討論的并不是外包公司,而是一些外包公司所培養出來的“外包思維”。
什么是 “外包思維”呢?簡單來說,就是由多年外包經歷所影響,逐漸總結出來的一些工作經驗。事實上并不是所有的工作經驗都對大家有幫助,有些工作經驗反而只會坑到你。那么下面我們來看看有哪些常見的“外包思維”吧。

技術是為業務服務的

單看這句話其實說的并沒有毛病,但是不少程序員卻對這句話進行了曲解。
每個技術的出現都有它的適用場景,比如MongoDB是為了解決高負載的讀寫,solr和ES是為了解決全文檢索,ELK整個技術棧的出現是為了解決日志收集,消息隊列則是解耦、解決高并發,redis則是解決緩存、分布式下的共享。。。等等等等。應對不同的業務場景,采用最合適的技術去進行解決,這才是“技術是為業務服務的”這句話本來的意思。
而現在的一些程序員,尤其是常年在外包公司工作的開發者,則對這句話產生了不同的理解。往往他們認為 ,業務是占主導,只要實現了功能,用什么技術都無所謂。你可以在攔截器中每次都查表校驗用戶token是否準確,你也可以每次加載省市區縣數據的時候都從數據庫里查出這3000多條數據,你還可以將大量的日志都存到數據庫中,在應對全站搜索時,你也可以用一個 where title like '%哈哈哈%' or content like '%哈哈哈%' 這樣簡單粗暴的方式掃描一張幾十萬數據的表。功能實現就行。往往帶有這種思維的程序員,更容易面臨30危機而考慮轉行,因為技術更新換代是非常快的,你永遠也想不到當年火的一塌糊涂的 delphi 現在卻變得無人問津。盡管現在很多框架的底層實現是Servlet,但是不可否認的是,已經沒有什么項目是用純Servlet+JDBC開發的了,如今這些排斥SpringBoot的程序員,會不會像當年那些排斥Ejb、Struts的程序員一樣被淘汰呢。

穩定最重要

單看這句話其實說的也沒什么毛病。技術用的天花亂墜,結果上線經常宕機,用戶使用起來很卡,數據也存在問題,這是非常可怕的。開發一個系統,最重要的就是穩定,上線要平穩運行,要能應對突發的流量,數據要有災備,出了問題可以快速恢復。因此,才需要用ELK從多維度分析日志,才需要用主從復制來進行災備,才需要用MQ應對突發的流量,才需要用緩存來存儲頻繁訪問的大量數據。這些技術棧的引入,就需要有專業的架構師來進行維護 、調配,以保證其的穩定。對于有惡性bug的框架(如Struts2),應當及時廢棄,采用更加輕量、高效、學習成本低的技術進行替換,才能保證系統的穩定運行。
而現在不少外包程序員對這句話的理解,則不是系統的穩定,而是框架的“穩定”,簡單來說,就是接到一個類似的系統之后,用現有的框架復制粘貼再稍作修改就可以交付,這樣能夠快速完成一個項目。長期使用一套框架,只要核心人員不變,就能快速上手。“新技術不穩定”這種說法也是因此而來,因為核心員工不會,又不愿意學,拿來做項目無法應對里面的一些小坑。比如從Struts2轉到SpringMVC,如果不知道SpringMVC是單例的,直接把成員變量寫到Controller里,出現線程安全問題之后大談“SpringMVC不穩定”,誰能有辦法。因此你會發現不少的外包技術都很老,甚至于是SSH、Struts1、EJB、JFinal,而前端則是extjs、easyui,以及各種估計70后才知道的UI框架。因為他們覺得,這樣技術復雜度不會提高,即使他們使用的技術已經可以稱之為“古墓派框架”了。畢竟很多電網項目滿天飛的bug都無法修復,最終客戶只能接受當做特性來看待,你跟我談穩定?

進了公司都是CRUD

這個我是完全否定的。
外包公司的工作說白了是流水線工作,只需要實現功能,性能、穩定性、可維護性、擴展性、代碼可讀性等完全不顧,來了新項目就用現有的框架改改就寫,確實做來做去都是CRUD,程序員技術得不到提升,這也是大部分互聯網公司不喜歡招外包經驗開發者的原因之一。
而互聯網公司則不同。初中高級開發者涉及的領域就有所區別。高級工程師雖然有時候也會寫crud,但是更多的時候是參與到架構搭建、技術選型、框架和中間件的研發、高并發問題解決等工作,而在外包公司,初中高級工程師的區別僅僅是薪資的區別,搞來搞去都是CRUD。

框架源碼沒必要讀,上班用不到

就拿Mybatis來說,不看一遍Mybatis源碼,拿頭寫Mybatis插件。

傳參和返回值都用Map

你最好把文檔寫清楚了,詳細到每一個方法的Map都有哪些參數,不然我怕你離職了被下一個接手的人追著砍。

存儲過程、觸發器好用

好用你妹啊,數據庫遷移的時候拿命搞,其他開發者冷不丁就踩個坑,業務放到代碼層面處理會死哦。

遇事不決Oracle

Oracle是一個高性能的大型商業數據庫,這個是很多人對Oracle的第一想法。早期的大型項目,現在的一些金融項目基本都是Oracle數據庫,這也奠定了大多數人對這個數據庫的偏愛,但是就目前來說,Oracle的優勢已經不行了。大廠逐漸的開始去IOE,早在2008年,阿里巴巴就提出了“去IOE”的想法,很多企業覺得癡人說夢,畢竟不存在哪個系統離得開Oracle。而現實卻給了這些企業一個狠狠的大嘴巴子,去IOE很成功,事實上也證實了現在確實需要去IOE。
Oracle的流行,是因為這是個商業數據庫,雖然使用免費,但是提供技術支持需要高昂的費用。早期Oracle在世界各地都有技術支持,一旦你的數據庫出了問題,基本上你都可以在當地找到技術人員來支持,這樣可以保證系統的相對穩定。而前兩年發生的Oracle裁員事件,至少在國內基本沒有多少Oracle的人了,而這個數據庫也就失去了技術支持,它的低位變得比較尷尬——沒有官方的技術支持;不開源。
就數據庫來說,現在更加推薦的就是MySql,如果是大型數據庫的話,可以考慮PostgreSql。都說Oracle性能比MySql好得多,但是比性能沒規定必須比單機性能,一臺MySql性能比不上Oracle,兩臺呢?三臺呢?現在隨便一個開發者,基本都會自己搭建MySQL集群,搞個主從復制、讀寫分離等,也就是說,使用MySql基本都是會集群的,即使現在沒有集群,將來集群也沒什么成本。而Oracle,我想大部分中小型企業都是沒人會搭建集群的,這就意味著使用Oracle只能使用單機版。
至于現在的金融系統還在使用Oracle,那就是歷史遺留問題了,畢竟這類項目,還有電網項目等,都是外包公司做的,這也就印證了上面外包公司認為的“穩定”。換了MySql可能會導致現有的框架不能復制粘貼改改就用,得重新寫,這樣“不穩定”。

結語

實際上,大家所聽到的一些外包思維言論不止這些,這里只是舉了一些常見的例子。找工作、水群的過程中遠離外包思維很重要,長期被這種思維所影響,會使人變得倦怠,從而排斥新事物,最終會消亡在舊事物中,終將迎來30危機。
這里并不是排斥外包公司,只是想說,外包公司只是個起點,或者說只是個體驗,不能作為終點。如果你不幸進了外包,可以在工作之余繼續學習、養精蓄銳,下一波跳槽跳到更好的互聯網企業脫胎換骨。

*************************************優雅的分割線 **********************************

分享一波:程序員賺外快-必看的巔峰干貨

如果以上內容對你覺得有用,并想獲取更多的賺錢方式和免費的技術教程

請關注微信公眾號:HB荷包
在這里插入圖片描述
一個能讓你學習技術和賺錢方法的公眾號,持續更新

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:
http://www.pswp.cn/news/536990.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/536990.shtml
英文地址,請注明出處:http://en.pswp.cn/news/536990.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

英特爾為 Kubernetes 推出分布式深度學習平臺:Nauta

2019獨角獸企業重金招聘Python工程師標準>>> 隨著人工智能的發展,深度學習的價值不斷增長,但實現它可能是一個復雜耗時的過程。英特爾(Intel)正尋求通過其在 Kubernetes 進行分布式深度學習的新開源平臺來改變這一狀況,該深度學習…

pytorch梯度下降函數_Pytorch中常用的四種優化器SGD、Momentum、RMSProp、Adam

來源:AINLPer微信公眾號編輯: ShuYini校稿: ShuYini時間: 2019-8-16 引言很多人在使用pytorch的時候都會遇到優化器選擇的問題,今天就給大家介紹對比一下pytorch中常用的四種優化器。SGD、Momentum、RMSProp、Adam。隨機梯度下降法(SGD&#…

2019/02/11-分布式數據庫概述

分布式數據庫類型(1)同構同質型:各場地都是同一種類型的數據庫,如都是關系型數據庫,且都是同一型號的數據庫管理系統(2)同構異質型:各場地是同一種類型的數據庫,但是數據…

python計算無窮級數求和常用公式_傅里葉變換(二) 從傅里葉級數到傅里葉變換...

在上一部分當中,得到了利用三角函數表示周期函數的方法,但是對于非周期函數就...涼了。所以有什么辦法嗎?沒辦法(劃掉)。這時候我們就需要拿出來我們的黑科技——傅里葉變換。一、傅里葉級數的推廣當然這東西肯定不是憑…

中鳴投籃機器人怎么組裝_1000余人參加洛陽市青少年機器人競賽

機器人智能識別地面上的黑色線條,并沿著線條來到指定位置,放下“快遞包裹”;無人機在空中飛舞,時而鉆過圓環,時而來個空翻,猶如跳芭蕾般在空中劃過一道優美曲線;橘紅色乒乓球從筒道中送出&#…

Exchange隊列優先級介紹和配置

一、場景 在日常辦公環境中所有郵件都會存在重要與非重要的情況,并且不同的郵箱的使用人的級別也不一樣,不一樣的職位級別要求不一樣的運維等級,以及發送郵件要求的速度也不一樣。這就導致了郵件需要按照重要性進行分類,重要的郵件…

Mybatis源碼閱讀(一):Mybatis初始化1.3 —— 解析sql片段和sql節點

*************************************優雅的分割線 ********************************** 分享一波:程序員賺外快-必看的巔峰干貨 如果以上內容對你覺得有用,并想獲取更多的賺錢方式和免費的技術教程 請關注微信公眾號:HB荷包 一個能讓你學習技術和賺錢方法的公眾號,持續更…

IBM研究院計畫5年改變人類生活創新預測

IBM研究院近日發布未來5年將會改變人類生活方式的5項創新預測(IBM 5 in 5),包含透過數字分身(Digital Twin)農業將用更少的資源供給不斷增長的人口、區塊鏈能防范更多的食物浪費、用微生物基因組群保護人類受到有害細菌…

添加請求頭 retrofit_RxJava 與 Retrofit 結合的最佳實踐

前言RxJava和Retrofit也火了一段時間了,不過最近一直在學習ReactNative和Node相關的姿勢,一直沒有時間研究這些新東西,最近有個項目準備寫,打算先用Android寫一個Demo出來,卻發現Android的世界發生了天翻地覆的變化&am…

Mybatis源碼閱讀(二):動態節點解析2.1 —— SqlSource和SqlNode

*************************************優雅的分割線 ********************************** 分享一波:程序員賺外快-必看的巔峰干貨 如果以上內容對你覺得有用,并想獲取更多的賺錢方式和免費的技術教程 請關注微信公眾號:HB荷包 一個能讓你學習技術和賺錢方法的公眾號,持續更…

k8s邊緣節點_邊緣計算,如何啃下集群管理這塊硬骨頭?

導讀邊緣計算平臺,旨在將邊緣端靠近數據源的計算單元納入到中心云,實現集中管理,將云服務部署其上,及時響應終端請求。然而,成千上萬的邊緣節點散布于各地,例如銀行網點、車載節點等,節點數量甚…

Mybatis源碼閱讀(二):動態節點解析2.2 —— SqlSourceBuilder與三種SqlSource

*************************************優雅的分割線 ********************************** 分享一波:程序員賺外快-必看的巔峰干貨 如果以上內容對你覺得有用,并想獲取更多的賺錢方式和免費的技術教程 請關注微信公眾號:HB荷包 一個能讓你學習技術和賺錢方法的公眾號,持續更…

搞懂toString()與valueOf()的區別

一、toString() 作用:toString()方法返回一個表示改對象的字符串,如果是對象會返回,toString() 返回 “[object type]”,其中type是對象類型。 二、valueOf( ) 作用:valueOf房啊發返…

oracle入庫的速度能到多少_倒車入庫別練復雜了,其實就這兩點

教練總會讓學員反復練倒車入庫,但不少學員都會有這樣的疑惑:為什么每一次倒庫結果都不一樣,倒車入庫的練習重點是什么?倒車入庫是科二的重點及難點,但只要掌握以下兩個關鍵,順利通過真不難:01方…

Mybatis源碼閱讀(三):結果集映射3.1 —— ResultSetBuilder與簡單映射

*************************************優雅的分割線 ********************************** 分享一波:程序員賺外快-必看的巔峰干貨 如果以上內容對你覺得有用,并想獲取更多的賺錢方式和免費的技術教程 請關注微信公眾號:HB荷包 一個能讓你學習技術和賺錢方法的公眾號,持續更…

kdj買賣指標公式源碼_通達信指標公式源碼MACD背離KDJ背離指標

N1:5;N2:10;N3:21;N4:60;牛熊:EMA(CLOSE,N4),COLORGREEN,LINETHICK3;DIFF:EMA(CLOSE,12) - EMA(CLOSE,26);DEA:EMA(DIFF,8);A1:BARSLAST(REF(CROSS(DIFF,DEA),1)); B1:REF(C,A11)>C AND REF(DIFF,A11)DRAWTEXT(IF(B1>0,1,0),L-0.1,MACD底背),COLORGREEN;RSV:(CLOSE-LLV(L…

Mybatis源碼閱讀(三):結果集映射3.2 —— 嵌套映射

*************************************優雅的分割線 ********************************** 分享一波:程序員賺外快-必看的巔峰干貨 如果以上內容對你覺得有用,并想獲取更多的賺錢方式和免費的技術教程 請關注微信公眾號:HB荷包 一個能讓你學習技術和賺錢方法的公眾號,持續更…

18.requests

多多的的轉載于:https://www.cnblogs.com/yangyangchunchun/p/10368337.html

gridview獲取選中行數據_Word轉Excel,不想熬夜加班,那就掌握這個數據清洗方法...

私信回復關鍵詞【福利】~獲取豐富辦公資源,助你高效辦公早下班!小伙伴們,大家好,我是專治各種疑難雜「數」的農夫~今天,我就為大家介紹一種高效的數據清洗方法,助你告別熬夜加班,擁抱美好的夜晚…

如何深入學習python_菜鳥如何學好python

python在我國發展得如火如荼,因其操作簡單,應用廣泛受到很多人的喜歡。下面小編就來說說菜鳥如何學好python,一起來看看吧!1. 了解編程的基礎知識種是變量、編程規范、基本語法等,這也是開始編寫Python代碼的先決條件。第二種是數…