上一篇《個人技能樹二》文章分享了個人技能中的前端技能和Java技能,今天繼續跟你們分享的就是後端技能了。前端
其中,標註爲黃色旗幟的是基本掌握,標註爲紅色旗幟的爲使用熟練。未標註的只是瞭解。vue
數據庫jquery
數據庫是信息化系統編程的基礎。由於我一直是作信息化系統的,因此這一塊比較熟悉。最初熟悉的數據庫是基於PB開發的Sybase,SQL Anywhere,如今已經不流行了。後來轉到了SQL Server,再後來轉到了Mysql,而後又熟悉了Sqlite。如今經常使用的數據庫是Mysql和Sqlite的組合。這樣選擇的主要緣由仍是由於使用的人多,還免費。如今用這兩種數據庫也基本夠用了,Mysql主管理系統端應用,而Sqlite主小型程序應用和Web前端應用。
對數據庫的掌握,須要哪些基本知識點呢,我認爲這些是必須的:sql
ORM數據庫
ORM我使用Entity Framework(EF)和Dapper,一個重量級,一個輕量級,適用於各自不一樣的應用場景。我曾經對是否使用ORM很糾結,由於ORM確實對系統性能是有影響的。但後來我想開了,機器是爲人服務的,咱們使用ORM的目的,是爲了解放人,可以使解放人釋放出的紅利,能覆蓋機器開銷增大而增長的成本。這個帳,整體是算的過來的,不然ORM就不會流行了。同時,咱們也要儘量好的使用ORM,要細心研究,合理使用,使得ORM對性能的影響在可控的範圍內儘可能小,若是隻作到菜鳥級別的使用,那多是得不償失的。
隨着ORM的流行,我已經不多直接寫SQL了。不過我也不喜歡EntityFramework的導航屬性,以爲使用它時限制感比較嚴重,並且性能問題也比較明顯,因此個人我的偏好的方式是,用「寫SQL」的方式使用ORM,也就是使用LINQ,既利用了我對SQL熟悉的能力,也用上了LINQ的靈活性。
對於EF和Dapper的選型,我通常是:若是是作的是「產品」,那麼使用EF,因此即便它只是一個單機版的小的系統,若是它是產品,我也會用EF+Sqlite來實現。而Dapper用於實現「接口」,好比產品系統要和外部系統對接,外部系統是項目型的,它的模型是不肯定的,所以很是適合使用Dapper,一方面在外部接口端直接寫SQL,在代碼端又能用上對象化編程模型,兩端的編程都獲得了方便。編程
Ado.Netbootstrap
對於傳統的Ado.Net的使用,我如今已經不用了。對Ado.Net的瞭解,我只是在學習C#的時期,做爲練手緣由寫一些demo,現實應用中已經徹底沒有必要使用它了。和它一塊兒能夠完全淘汰的有:DataTable,DataSet。因此,但我看到仍是使用DataTable的同窗,我不由想勸TA:該進步了同窗!後端
爲何要學習設計模式呢?其實對我來講,不能叫「學」,而是「瞭解」設計模式。在瞭解設計模式以前,我一直是按本身對OOP的本能理解在進行設計和開發。所謂「二十一種設計模式」,「二十四種設計模式」,源頭都是來自於Java界。當我看到這些提法就有擔憂,本身的設計是否是遵循了設計模式的基本原則?有沒有可改進的空間?所以以爲須要對設計模式有個全面的瞭解。
對照看過基本設計模式的書,一方面確實開闊了眼界,另外感受對本身的實際編程幫助有借鑑,但其實也不大。一個緣由是,本身平時的設計中,其實基本遵循了設計的一些原則,和某些設計模式相似。好比:工廠、單例、外觀、裝飾、組合等,本身下意識的就在用。另外,一些不經常使用的設計模式,本身其實平時也不會用到,緣由多是本身平時寫的不是須要發佈的那種第三方的類庫,而都是項目的類庫。這些類庫,都是爲了解決現場問題而設計的,而不會爲了實際中沒有發生的需求而進行預先設計。因此就沒有必要精雕細琢,增長當前不須要的設計,這樣對要遵循某種設計模式的必要性就下降了。
雖然看過設計模式的書後,如今我在編程過程當中,大部分設計模式都不會有意識的去用,都仍是憑對OOP的基本理解,代碼怎麼簡潔,怎麼容易閱讀,怎麼方便擴展這些基本原則來考慮,不會強求套用設計模式。我以爲這個思路也是對的。若是作什麼設計都要去套用設計模式,可能拔苗助長,搞出不三不四的設計架構。不過無論怎麼樣,不按期的回顧設計模式,將對設計模式的進一步的思考更好的融入到本身平時的設計中去,本身其實作的還不夠,也須要增強。
我當前在產品中,用到的設計模式,我能想起來的,可能包括:簡單工廠模式,單例,組合,橋接,外觀,裝飾,代理。設計模式
講到這裏,經過總共三篇文章的講解,我也對個人整個技能進行了梳理,對本身的技能的進一步發展,也有了更清晰的規劃,那應該包括:微信
在學習過程當中,我在網絡上收集過一些學習資料,在通過閱讀後也甄選出比較經典的一些資料。有須要的朋友,能夠在後臺回覆關鍵字「獲取技能樹」,可得到包括《C#高級編程》第七版,《Java編程思想》第四版,和《大話設計模式》的下載連接。
歡迎關注本人微信公衆號,更及時的關注最新文章(每週多篇原創文章,以及多篇專題文章):
掃描二維碼關注