生活随笔
收集整理的這篇文章主要介紹了
[心得]AUP Unix编程艺术知识整理
小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
一、哲學(xué)
Unix哲學(xué):
一個(gè)程序只做好一件事
程序要能處理文本流
歸納起來一句話:
Kiss:keep it simple,stupid
展開是以下原則:
1.模塊單一職責(zé):編程本質(zhì)是控制復(fù)雜度,新聞服務(wù)端模塊化就是這樣一種例子
2.清晰勝于機(jī)巧
3.策略同機(jī)制分離,接口同引擎分離,MVC就是這樣一個(gè)例子
4.簡潔至上
5.設(shè)計(jì)考慮過濾器拼接組合,serving模塊里面process設(shè)計(jì)就是這樣一個(gè)例子
6.慎寫大程序
7.設(shè)計(jì)要可見
8.健壯緣于可見和簡潔
9.把知識疊入數(shù)據(jù)以求邏輯質(zhì)樸而健壯
10.選項(xiàng)遵循常識習(xí)慣:最少立異。c++不重載常見運(yùn)算符
11.保持輸出交互清爽
12.出現(xiàn)異常,馬上退出并給出足夠錯(cuò)誤信息,寬容接收,謹(jǐn)慎發(fā)出?,F(xiàn)在的程序加上了異常處理,不會馬上退出,但會進(jìn)行異常處理
13.程序員時(shí)間比機(jī)器時(shí)間寶貴
14.避免手工hack,讓代碼去干基礎(chǔ)的活
15.先建能運(yùn)轉(zhuǎn)起來的模型,而不是上來就碼代碼追求產(chǎn)出
16.考慮多語言,開放可擴(kuò)展和移植性
轉(zhuǎn)到UNIX實(shí)踐,看以下幾條:
盡可能做成上下游無關(guān)的過濾器數(shù)據(jù)流文本可視化可序列化以及反序列化數(shù)據(jù)庫部署和應(yīng)用協(xié)議文本化前端和后端分離先讓原型運(yùn)轉(zhuǎn)盡可能降低復(fù)雜度 寬收嚴(yán)發(fā) 過濾保持最少損耗模塊單一職責(zé)
二、實(shí)踐
Unix文本格式常用約定
一行一條記錄一行盡可能不超過80字符使用#注釋支持反斜杠約定冒號或者連續(xù)空白作分隔符不嚴(yán)格區(qū)分tab和whitespace使用16進(jìn)制表示數(shù)值不要對文件的一部分進(jìn)行壓縮或者二進(jìn)制編碼
Unix從-a 2 -z的命令行選項(xiàng)常用含義
-a 所有項(xiàng)-b 緩沖區(qū)或者塊的大小-c 參數(shù)選項(xiàng)-d 調(diào)試-D define-e 執(zhí)行或者編輯-f 文件或者強(qiáng)制-h 表頭或者幫助-i 初始化或者交互-I 包含-k 保留-l 列表或者加載,登陸-m 消息-n 數(shù)字或者否定-o 輸出-p 端口或者協(xié)議-q 安靜-r 遞歸-s 靜音或者主題-t 標(biāo)記-u 用戶-v 顯示輸出過程或者版本-V 版本-w 寬度或者警告-x啟用調(diào)試-y 確認(rèn)-z 啟用壓縮
Unix接口常用設(shè)計(jì)模式
過濾器模式 例子:grep/catcantrip模式:無入無出,只被調(diào)用一次,產(chǎn)生退出狀態(tài)碼 例子:clear/rm/touch源模式:無入有出 例子:ls/ps阱模式:無出有入 例子:lpr/spooler編譯器模式:無入,無標(biāo)準(zhǔn)輸出,但有錯(cuò)誤輸出 例子:cc/gcced模式:啟動傳入控制信息,同數(shù)據(jù)分離,之后與用戶交互roguelike模式:通常單鍵觸發(fā)而且不回顯發(fā)出的命令,每項(xiàng)一行,帶有模式行 例子:vim引擎和接口分離模式:例子 MVCCLI服務(wù)器模式:前端出發(fā),有界面io 例子:POP和http服務(wù)器
各主流語言優(yōu)缺點(diǎn)點(diǎn)評
C 優(yōu)點(diǎn):最接近硬件效率的高級語言 缺點(diǎn):內(nèi)存管理C++ 優(yōu)點(diǎn):編譯效率,OO和STL,范型 缺點(diǎn):非常復(fù)雜shell 優(yōu)點(diǎn):小清新 缺點(diǎn):大了不好移植python 優(yōu)點(diǎn):清新易讀好上手 缺點(diǎn):低效java 優(yōu)點(diǎn):內(nèi)存管理 缺點(diǎn):效率比C/C++略遜
總結(jié)
以上是生活随笔為你收集整理的[心得]AUP Unix编程艺术知识整理的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。