我想吐槽下,在新公司通過三個月的試用期,前兩天終於完成了轉正答辯,其實答辯就是兩個咱們項目組的兩個項目經理(一個項目經理立刻要離任了,另一個新來的兩個月,繼任前者做爲項目經理。),還有一我的事的同事。連一個部門經理或者稍大點的領導都沒有參與個人答辯。感受答辯的意義都沒有了,可是巨坑的是,新項目經理說「有木有打算培訓班學習想法」,「對數據庫的應用要學習學習」,我想這不是赤裸裸諷刺我基礎太差麼?其實我確實來這家公司以前,沒有用過MVC,這個能力也學稍弱與這個項目經理。可是我能夠講,個人其餘能力絕對不輸給他。由於他寫的代碼和一些功能點的實現方式都略有看過。如下我截圖給你們看看:css
我要用left join,他說要用inner join不展現錯誤數據,其實我就想要把錯誤數據展現出來,發現後解決問題,隱藏使的問題永遠不會保存,用戶數據是愈來愈亂。html
我用in,他要用=,這個我瞭解了下,確實用in效率低,那是由於原來咱們公司根本不須要太考慮這個問題,致使了個人寫做習慣,執行速度客戶接受便可,畢竟客戶的數據量在那裏。前端
其實就上面我說講的,個人問題,我改正。可是不要用那種你本身高高在上,別人差強人意,那種姿態。只是我沒講,並非我不知道。web
說說今天的正題「我如何作一個合格的工程師」,做爲一個web軟件工程師,必需要知道基礎四點:前端,後臺,數據庫,部署。每一點都是要求的,用專業名詞叫作「規範」。其實這個規範,是長時間積累,文字描述出來的經驗,方便全部人共同使用,提升工做效率,避免雜亂無章。先在這裏提供《.NET之美》做者張子陽寫的一篇《.Net 項目代碼風格要求》 下面開始我就着這四點,逐步講講個人認識和心得,注意我會採起倒敘的方式,不當之處望你們指正。sql
1、 部署a、 簡介咱們作一個web項目,老是須要安裝部署到客戶的服務器,服務器硬件及服務器系統軟件不一樣,都會影響到軟件的使用。數據庫
b、 要求掌握1)、硬件:服務器分爲刀片式、塔式、機架式服務器
2)、軟件:Windows Server 系列,Linux 系列網絡
3)、網絡:局域網,城域網,廣域網併發
c、 認識及心得爲何讓你們要掌握以上一些知識呢,這是由於不一樣的客戶層次,對於辦公環境有着不一樣的要求,畢竟這些環境跟金錢都是掛鉤的,小客戶和大客戶的考慮和經費都不同的。這個使咱們產品定位時,要掌握到的信息。這關係到用戶數量,在線用戶數量,併發量及數據量。這樣咱們又能夠反推客戶能給咱們提供什麼檔次的部署環境。而後咱們在編碼階段,代碼實現方式確定會由於這些條件影響。(注,Linux是能夠部署.NET MVC,文章連接爲http://www.cnblogs.com/wang_yb/archive/2012/08/22/2650960.html,此文章我沒有進行驗證)數據庫設計
2、 數據庫a、 簡介數據庫目的就是存儲數據。如今主流的關係型數據庫有Oracle、DB二、Microsoft SQL Server、Microsoft Access、MySQL等等。
b、 要求掌握掌握sql語句,觸發器,存儲過程,函數,遊標,視圖,索引等等。每個數據庫語法雖然都必定的差別,可是基本上學習了其中一種,就下降了其餘數據庫sql語法的學習成本了。
c、 認識和心得不論是誰,我想都會理解到數據是「金」概念。每當我電子產品出現問題,咱們都會擔憂它裏面的數據會不會丟失,會不會找不回來。每當有人使用咱們的電子產品是咱們都會小心他會不會把裏面的數據誤刪或弄亂。可想,數據的有時候不是金錢直接能夠衡量的,由於丟失或者弄亂就很難恢復了。
如下爲數據庫設計提幾點建議:
1)、要保證表與表之間的強內聚弱耦合
2)、儘可能避免沒必要要的數據冗餘
3)、儘可能不要把一對多的關係存儲在某一個字段裏進行體現。
4)、列名必定要清晰易懂無歧義,儘可能使用約定俗成的名稱,不要隨意標新立異
5)、重中之重的一點,表名,列名要註釋
6)、可適當經過外鍵創建表關係
注:其實這些大部分都是屬於三範式的要求,可是我發現不少人在設計的時候,都在考慮後期經過sql讀取數據方便,並未考慮數據的維護,和業務是否合理。3、 後臺a、 簡介其實這個很簡單,就是C#,有不少人都認爲C#很好學,Java難學,可是個人沒有感受,一個語言的精通須要經過很長時間的積累的。
b、 要求掌握其實就是咱們不少書上講的,這些掌握了,基本開發不難
c、 認識和心得1)、要有代碼分層分類概念
2)、好的註釋習慣
3)、規範的編碼風格
4)、封裝能力強(精簡的參數,少用重載,多用可選參數)
5)、可以將代碼進行調優
6)、列名必定要清晰易懂無歧義,儘可能使用約定俗成的名稱,不要隨意標新立異
4、 前端a、 簡介這塊就是html部分,也是不少.net工程師的弱項。固然也是個人弱項。可是基本的調整,和一些代碼規範我都會的。這裏還牽扯到,項目各種文件夾和文件的放置,這個也要有要求。
b、 要求掌握html、css、JavaScript
c、 認識和心得1)、css和js引用順序,先css再js
2)、js我一直認爲是提升體驗度的,並不適合大量的客戶端運算
3)、對前臺代碼,要作垃圾清理,無用的和無心義的註釋都要清理掉。
4)、封裝js
5)、會調試,css和js
6)、會必定的前端調優
這裏作一下1~6樓的統一回復:首先很是感謝各位園友拍磚,我寫這篇文章,是順便吐槽,而不是主要吐槽,你們儘可能關注內容的重點,對這個拍磚,咱們才能從博文中一塊兒學習。我相信你們都聽過一句,「你能夠對我指點指點,但請不要對我指指點點」。我也強調過,是個人問題,我必定改正,這個是對有個人進步。個人弱點在哪裏我其實清楚。新同事在互相不瞭解的狀況下,多多瞭解之後再下定論,並且還不肯定的千萬不要說,由於你們都工做好幾年,都會有本身的固定思惟。我前面提到的問題是有在項目組拋出來相似問題的,因此沒有必要拿出來單獨針對他講,或許他在實現上有他本身的考量。總之吧,我並無什麼玻璃心啊,也沒有什麼沉不住氣。打壓也要你確實有這樣的問題,有問題直接說問題就好。不要故意把小問題放大化,特別是一些特定的場合,不然那隻會讓別人認爲你是假。作程序的都講究一個踏實,程序運行和你工做能力牢牢綁在一塊兒,都是沒有辦法騙人的。