程式庫和物件導向語言——unix編程藝術學習筆記

1.1  程式庫強烈傾向於把程式分解成有膠合層串連的庫集合,特別是共用庫。使用庫來達到c語言的模組性。庫分層的一個重要形式是外掛程式。執行個體分析:GIMP外掛程式1.2  UNIX和物件導向語言Unix的模組化傳統就是薄膠合層原則。也就是程式底層和頂層之間的抽象層越少越好。原因可能是因為c語言建立抽象層非常困難。OO語言鼓勵具有厚重的膠合和複雜層次的體系。如果問題域確實很複雜,這種方法可能有用,但是如果用複雜的方法處理簡單的問題,結果適得其反。OO語言有讓程式員進入過度分層陷阱的傾向。“如果你

開發工具,重用,可移植性——unix編程藝術學習筆記

1      工具:開發的戰術有幾個工具需要關注一下:Lex和yacc:這兩個工具和DSL相關,我之前考慮過寫一個通用的DSL引擎,這兩個工具也許是可以使用的。另外,Python有它的一個實現叫PLY,也要關注一下。它的一個執行個體:Glade。Makefile的自動產生工具:比如atuoconf,imake。2      重用:論不要重新發明輪子避免重新發明輪子的最有效方面就是借用別人的實現:在Unix上,這不單單只重用代碼,更指系統級的重用:程式重用。達到重用,一個非常重要的一點就是開源。3

unix設計十七條原則之二(unix編程藝術筆記)

最近在學習《unix編程藝術》。第一章非常不錯,講了很多Unix的曆史,哲學基礎,其中最重要的是提到的十七條設計原則。很多原則自己也知道,但是從來沒有總結的如此詳細深刻。下面的內容大部分來自《unix編程藝術》這本書,少部分是我的一些理解。這是我讀書的一個習慣,對於我認為重要的,我會把它打出來,在打字的過程中我會根據深入的思考理解。所以,筆記對我來說是一個思考和記憶的輔助手段。9、 

服務架構初步想法

不知道這樣好不好,在做一個事情的時候,總是想上一下網,看一下技術。而看到一個技術點,總會不自覺的研究一下,搜尋一下相關的內容。這樣對工作效率會有影響的。後面要注意啊。剛才看服務架構。把底層的組件、功能服務化,對業務層提供統一的開發介面(將異構的開發介面統一為服務)。這樣做的好處:1、避免重複開發。將很多公用的東西,抽象構造為服務。2、對應用系統,降低開發複雜度。一起要串連很多提供服務的實體,現在,只要串連一個服務服務端即可。3、再往上,可能就是應用系統的整合。技術選擇上,可以參考有很多:Goog

【項目文檔】【公告】論壇發帖規範,以及網頁建立規範

 為了節省大家的時間,對論壇的發帖和建立網頁進行規範。、1、發帖規範  發帖內容目前總共有三類(後面可以考慮添加):a) 討論,成員在學習過程中的疑問,心得的交流。b) 疑問匯總,有KO整理,負責發布,並且供KE進行解答。c) 公告,主要是通知性的內容。為了在標題中攜帶更多的資訊,節省大家的時間,對文章標題的規範如下:“【討論】【主題(比如,指標)】標題(比如,指標的本質是什麼)”具體樣本:“【討論】【指標】指標的本質是什麼,大家一起討論下”“【疑問匯總】【指標】指標知識點疑問匯總,請KE解答”

《技術領導者》學習筆記1——定義,模型,解決問題方式

前記:這兩天看楚漢傳奇,到目前為止得出幾個觀點:一個是時勢造英雄,實踐出人才。在我之前的一個部落格中有體現(http://blog.csdn.net/chgaowei/article/details/6041734)。二是一個領導人,必須要敢於擔當,敢於承擔責任。三是團隊中不一定都是頂級人才,但要互補。劉邦旁邊為何那麼多的人才彙集?並非是什麼優秀的人才都會和優秀的人才在一起,而是他們在一起經過同樣的環境,同樣的挑戰,同樣的實踐才成為人才。1     領導力定義所謂的領導力,就是創造這樣一個環境,

APUE學習筆記-檔案IO

1      檔案I/O1、  lseek的傳回值應該判斷是否為0,而不是小於0。2、  位移量可以大於檔案大小。這個時候會有檔案空洞。3、  可以統計程式的已耗用時間:使用者cpu(使用者態),系統cpu(核心態),牆上時間(總是將)。time –p ./execute4、  open加上標誌:O_CREATE和O_EXCL可以判斷檔案是否存在。5、  dup和dup2可複製檔案描述符。並可指定複製後的描述符。6、  linux

【深度剖析】【變數】變數的範圍

 範圍的定義範圍(scope)或者可見度是指變數在程式內的可見和可引用的範圍。比如,全域變數在所有的檔案都可訪問,那他的範圍就是所有檔案;static定義的全域變數,只可以在定義它的源檔案中訪問,那他的範圍就是其所在的源檔案;函數內部的局部變數,只在其函數範圍內有效;有些變數,只在某一塊程式碼片段內有效(花括弧括起來的一段代碼); 使變數引用局部化:《代碼大全》這本書引入了攻擊視窗的概念:介於同一個變數多個引用點之間的代碼可成為攻擊視窗,在這個視窗中新增代碼,可能會不當的修改此變數。一般而言,把

APUE學習筆記——訊號

訊號可以自己擴充。訊號產生:1)使用者操作:ctl+c;2)硬體異常:除0,記憶體越界等;3)進程調用kill函數可以將訊號發送到另一個進程。4)使用者使用kill命令。5)某軟體條件產生。訊號處理:忽略,但是SIGKILL和SIGSTOP不可以忽略,他們向超級使用者提供了進程終止或停止的可靠方法。硬體產生異常也不可以忽略。使用SIG_IGN忽略。捕捉訊號,為訊號註冊一個函數。SIGKILL和SIGSTOP不可以捕捉。(為什嗎?)執行系統預設。訊號詳細說明:被中斷的系統調用:當捕捉到某個訊號時,

APUE學習筆記——進程環境

 在main中調用exit(1)和reutrn 1是等價的。核心啟動一個進程的唯一的方法是調用exec,使用者程式終止進程的唯一方法是顯示或者隱式的調用_exit或者_EXIT。每個進程都會有一個進程表。進程表是一個全域的指標:environ。extern char

是時候離開你的工作了嗎?

你和你的工作轉自 酷殼 - CoolShell.cn 作者:陳皓有 69

深度剖析:具名常量

內容來自——DS計劃C深入學習項目     歡迎加入,共同進步 訪問此論壇c中所謂的具名常量,是指用const修飾的變數。本文會深入一下具名常量的本質,儲存位置,以及是否可以更改,如何更改等。首先,聲明一下我測試的環境:linux企業版5.0。  測試非static全域變數測試程式如下:#include <stdio.h>#include <stdlib.h>#include <string.h>const int g_int_a = 1000;int

APUE學習筆記——線程

採用多線程模式可以採用同步編程,而非非同步編程,可以簡化編程;多個進程間可以很方便的共用資料;可以通過pthread_self獲得自身的線程ID。線程ID只在進程內部唯一。新建立線程不能保證那個線程先運行,新縣城可以訪問進程的地址空間,繼承線程的浮點環境和訊號屏蔽字。如果任意一個線程調用:exit,_Exit,_exit,進程都會終止。線程終止方式:1)從啟動函數中返回,傳回值就是線程的退出碼。2)可以被其他線程取消。3)線程調用pthread_exit。pthread_exit的入參就是現場的

APUE學習筆記——線程式控制制

線程屬性使用的是結構體ptread_attr_t,它對應用程式是不透明的,這樣可以增強程式的可移植性。可以使用ptread_attr_init進行初始化,使用ptread_attr_destroy進行反初始化(類似於釋放操作)。兩者必須配對出現。如果要修改ptread_attr_t,必須調用相應的函數。如果不關心線程的終止狀態,可以將線程設定成分離狀態(PTREAD_CRETE_DETACHED,PTREAD_CREATE_JOINABLE):ptread_attr_setdetachstate

APUE學習筆記——進程式控制制

1. getpid可以擷取進程id。getppid可以擷取進程調用進程的id。2. fork函數:一次調用,兩次返回:返回0是在子進程中。返回其他值在父進程中。如果大於0為子進程id;否則失敗。3. 子進程獲得了父進程的資料空間(DATA,BSS),堆,棧的副本。進程之間共用本文段。4. 目前的實現一般不進行全部複製,而實現的是寫時複製:及經常唯讀共用部分,一個進程去更改一塊記憶體是,為這塊記憶體建立一個副本。5.

Pku acm 2533 Longest Ordered Subsequence 動態規劃題目解題報告(十二)

http://acm.pku.edu.cn/JudgeOnline/problem?id=2533這個題目和1887 Testing the CATCHER一模一樣,沒有什麼值得說的,關鍵的c代碼如下:for(i=1;i<=n;i++){for(j=1;j<i;j++)         if(max[i]<=max[j]&&num[i]>num[j])                 max[i]++;        

最近項目總結

好吧,我這個人平時想的有點多。下面是一個專案管理的總結。1、要把所有人的積極性調動起來,而不是自己一個的積極主動2、要善於藉助人的力量,而不是憑藉一己之力完成。項目leader不要寫大量的代碼,可能會影響項目的推動。3、把各個模組分給不同的人去設計,去思考細節,而不是事無巨細都自己來完成。4、思考一下為什麼設計方案變化總是很多。5、分配任務的時候,是不是沒有指定任務的完成時間,讓他們自己去安排任務,我只檢查結果。這樣把壓力傳遞到他們每個人的身上。影響力。

換膚測試程式

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html;

如何查看進程的實際的記憶體佔用

top命令可以查看進程記憶體的使用,但是不夠詳細。還有一些命令可以進行更加詳細的查看。[root@localhost ~]# cat /proc/5606/statusName:   switch4State:  S (sleeping)Tgid:   5606Pid:    5606PPid:   1TracerPid:      0Uid:    0       0       0       0Gid:    0       0       0       0Utrace:

層模式——面向模式體繫結構學習筆記

可以將系統劃分為子任務組,每個子任務組在一個特定的抽象層次上。1.例子ISO7層模型。2.語境一個需要分解的大系統3.問題假設有一個系統,它明顯的混合了底層與高層的問題。強制條件:1) 一個地方的更改,被限制在某組件或某層內,不會擴散到整個系統。2) 介面應該是穩定的,甚至可以用標準件來限定。3) 系統的各個部分應該可以替換,組件可以被其他的實現方法來替換而不影響系統有的其他部分。則可能基於優秀的介面定義。4) 以後可能有必要建立其他系統,這些系統具有和當前設計的系統具有同樣的底層問題。5)

總頁數: 61357 1 .... 20556 20557 20558 20559 20560 .... 61357 Go to: 前往

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.