靜兒最近做面試官做的比較多,說說咱們這些站在巨人肩膀上的后起之秀應該具有的基本觀念。
首先,CRUD(增刪改查)工程師是很難找到好工作的。如果你介紹一個人的時候,說這個人不錯,踏實靠譜,推薦去某某大廠吧。這句話暴露了自己的格局。大廠第一看能力。
先說說CRUD工程師。面試發現是這種情況,挺尷尬的。如果面試時發現總是在切換內容沒有體系,一般有兩個原因:要不面試官挫,要不面試者挫。
某某說我一個做業務的,天天就是CRUD啊,沒啥好說的。額,聽我說說看。
比如:大家經常開玩笑舉例子,說做的業務比較挫,就命名為XXX管理系統。先說說XXX管理系統。
WHAT
就算我們只是簡單的執行者。執行力要看what why how。先看看what。
上圖展示了首先要梳理的一些事情。即:處於什么領域?這個領域都有哪些顯性需求和隱性需求?舉個例子,隱性需求里看起來很簡單的,但是基本每個業務都要考慮的安全規約。像金融業務涉及合規什么一清、二清,獨立物理部署我們就不提了,就說說每個項目都要用的。
數據脫敏是信息安全中心根據《中華人民共和國網絡安全法》和公司敏感數據安全管理要求,開展的一項針對數據倉庫、應用系統等層面的公司敏感數據的脫敏管理工作。技術問題來了,怎么實現的?這就和面試官有的聊了。
再說說RBAC(基於角色的權限控制),A是普通用戶,B是管理員。權限有高低之分,這就屬於垂直權限要解決的問題。A、B兩個都是普通用戶,但是他們都只能看到自己的信息,不能看到別人的,這就是水平權限要解決的問題。技術話題打開序幕……
WHY
假如我們給老板提交了一個項目計划,里面列出了什么時間做什么事情。老板看着這些東西多半不是第一個關心的,第一關心的是:做這些有哪些收益?
why的問題真正決定了這個項目的架構。舉個例子來說,靜兒是做容器的,用k8s,k8s的架構大體如下:
看不懂沒關系,不是重點。重點從工程上來說,它的核心思想和XX管理系統是差不多的。
k8s有一個暴露的api層,做的就是CRUD,etcd是存儲,剩下的就是它的核心職能:容器管理和策略。
XX管理系統是不是差不多?有一個暴露的api層,做的就是CRUD,下面是存儲層,然后是核心職能。
管理系統是偏業務的。八大數據分析模型(留存分析、行為事件分析、漏斗分析、點擊分析、用戶路徑分析、用戶分群分析、分布分析、屬性分析)是基礎。為了獲取收益該做的埋點都埋了嗎?該展示的報表展示了嗎?該做的統計分析做了嗎?
HOW
各部分都怎么做,太多了,不一一細說。最簡單的設計要遵循的一些原則和自己從實踐中總結的規律。列幾個最簡單的,能做好也挺不容易。
面向對象的三大基本特性
三大特性:封裝、繼承、多態
封裝:將客觀事物封裝成類
繼承:讓某個類型的對象獲得另一個類型的對象的屬性和方法
多態:指一個類實例的相同方法在不同情形有不同表現形式
面向對象的五大基本原則(SOLID原則)
單一職責原則SRP(Single Responsibility Principle):是指一個類的功能要單一,不能包羅萬象。
開放封閉原則OCP(Open-Close Principle):一個模塊在擴展性方面應該是開放的而在更改性方面應該是封閉的。
里氏替換原則(Liskov Substitution Principle LSP):子類應當可以替換父類並出現在父類能夠出現的任何地方。
接口分離原則(the Interface Segregation Principle ISP):模塊間要通過抽象接口隔離開,而不是通過具體的類強耦合起來。
依賴倒置原則(Dependency Inversion Principle DIP):傳統的結構化編程中,最上層的模塊通常都要依賴下面的子模塊來實現,也稱為高層依賴低層。DIP就是不要直接依賴具體類,可以定義一個接口,依賴接口。
設計模式的六大原則
開閉原則(Open Close Principle):對擴展開放,對修改關閉。
里氏代換原則(Liskov Substitution Principle):任何基類可以出現的地方,子類一定可以出現。
依賴倒轉原則(Dependence Inversion Principle):針對接口編程,依賴於抽象而不依賴於具體。
接口隔離原則(Interface Segregation Principle):使用多個隔離的接口,比使用單個接口要好。它還有另外一個意思是:降低類之間的耦合度。
迪米特法則,又稱最少知道原則(Demeter Principle):一個實體應當盡量少地與其他實體之間發生相互作用,使得系統功能模塊相對獨立。
合成復用原則(Composite Reuse Principle):盡量使用合成/聚合的方式,而不是使用繼承。
其它原則
1.KISS原則
KISS(keep it simple, stupid):簡歷即正義
2.業務內聚,訪問通道隔離
對於管理系統來說,權限管理是門藝術,能搞定ABAC(Attribute Based Access Control)和RBAC(Role based Access Control)也能達到相當的高度。