32章 Self-Documenting Code讀書筆記

看完這章我有一個最大的感受,寫代碼就像寫一本書一樣。代碼就像書中的文字,而注釋就像書的目錄一樣。有了目錄尋找書中的類容就方便很多,要修改代碼也很容易。這當然也和代碼的組織或者說書的排版有密切關係。這章的重點是代碼注釋,對我來說是一個很頭痛的問題,我之前的代碼注釋總覺得寫的不很科學,不如直接看代碼。看了《代碼大全》如撥開雲霧見青天,豁然開朗。首先作者將代碼注釋分了一下類,如下有五類:Repeat of code

組織代碼順序

以上是組織代碼順序的思路。下為總結內容。 1 代碼執行順序    通常我們對寫程式對資料操作都是取數,對資料進行計算,再列印。一段java示範代碼如下:data = ReadData(); results = CalculateResultsFromData( data ); PrintResults( results );     這三個步驟思路非常清晰,說明了這幾個函數之間的耦合程度,和相互依賴性。除非什麼特殊情況發生,否則都會按照這個順序來執行。尤其在ABAP中,似乎都是這樣的順序。   

GCC內嵌彙編簡介- – zz

                                        在內嵌彙編中,可以將C語言運算式指定為彙編指令的運算元,而且不用去管如何將C語言運算式的值讀入哪個寄存器,以及如何將計算結果寫回C 變數,你只要告訴程式中C語言運算式與彙編指令運算元之間的對應關係即可, GCC會自動插入程式碼完成必要的操作。 1、簡單的內嵌彙編 例:       __asm__ __volatile__("hlt");

list_entry 等

typedef struct guhuo{int a;char c;int b;}zqy;zqy *pp;typeof(pp->b) a;    OK#define typez(type,mem) typeof(type->mem)typez(pp,b)                                 OK#define list_entry(ptr, type, member) /        container_of(ptr, type,

Sprite自用版

import javax.microedition.lcdui.*;      public abstract  class Sprite  {         int x,y; //不用解釋X,Y座標  /*                             */    public int getX() { return x; }           public int getY() { return y; }  /*                             */  

分配最大記憶體大小

46 static inline struct page * alloc_pages(unsigned int gfp_mask, unsigned int order) 47 { 48 /* 49 * Gets optimized away by the compiler. 50 */ 51 if (order >= MAX_ORDER) 52 return NULL; 53 return _alloc_pages(gfp_mask, order); 54 }

反擊NMAP掃描

 一、NMAP掃描 想要入侵一台電腦,首先要有一套完整的計劃。在入侵系統之前,必須 先找到一台目標主機,並查出哪些連接埠在監聽之後才能進行入侵。找出網路上的主機,測試哪些連接埠在監聽,這些工作通常是由掃描來實現的。掃描是進行入侵的第 一步。通過使用掃描器(如Nmap)掃描網路,尋找存在漏洞的目標主機。一旦發現了有漏洞的目標,接下來就是對監聽連接埠的掃描。Nmap通過使用TCP協議棧指紋準確地判斷出被掃主機的作業系統類型。 其 實很多人都知道,nmap -sS/-O

Ehcache 中ehcache.xml 配置詳解和樣本

Ehcache 中ehcache.xml 配置詳解和樣本2011-02-12 14:07<?xml version="1.0" encoding="UTF-8"?><ehcache> <!--timeToIdleSeconds 當緩衝閑置n秒後銷毀 --> <!--timeToLiveSeconds 當緩衝存活n秒後銷毀 --> <!--  緩衝配置       name:緩衝名稱。      

Private Sub Worksheet_Change事件碰到的問題

之前動態表格的更新問題我都是加了一個按鈕來觸發更新的事件,簡潔卻不美觀。老大跟我說一定要解決,感謝崔兄之前告訴了active事件。後來查閱資料我又發現了有change事件!這個似乎更好用,通過更崔兄討論確定了用會計年度,會計週期,公司代碼這三個變數作為更新查詢的條件。在寫代碼中我又發現了兩個問題,第一個問題是query裡有7個查詢,你怎麼知道那一個query最後更新。這個問題還是很好解決的,我寫了一段代碼測試了下,如下:If Target.Address = "$CG$1" Or Target.

三界泡泡簡要設計要求

 三界泡泡         已經擁有了最核心的類Sprite。 1 靈活使用Sprite,學會類的重寫,不斷將其完善。2 要求寫出 泡泡 主角 怪物 分別分3類都繼承Sprite。3 寫出地圖類,最好使用資料流讀取BAT檔案來擷取地圖代碼。 分類初期詳細要求。 泡泡 滿足爆炸前緩衝至爆炸的圖案設計,爆炸檢測是否所炸地區可炸,是否有連炸泡泡。 泡泡要擁有爆炸強度。(強度只吃了道具後威力加強)//這個我來寫主角 滿足上下左右4方向 8楨圖象,現Sprite中加入翻轉功能可省略4楨。 主角死亡

build & host

Nope. See `info standards' for the definition of $build*, $host* and$target* macros. Basically, $build* refer to the system compilation isbeing performed on, $host* refer to the system compiled binaries are torun on and $target* refer to the system

abap number range

如有轉載請註明出處:http://blog.csdn.net/donkey2004112103/archive/2009/04/13/4070996.aspx1.sap numbe

使用 Kprobes 調試核心(zz)

 http://www-128.ibm.com/developerworks/cn/linux/l-kprobes.html使用 printk 收集 Linux 核心的調試資訊是一個眾所周知的方法 —— 而使用了 Kprobes,不需要經常重新引導和重新編譯核心就可以完成這一任務。Kprobes 與 2.6 核心結合起來提供了一個動態插入 printk's 的輕量級、無幹擾而且強大的裝置。記錄調試資訊(比如核心棧追蹤、核心資料結構和寄存器)日誌從來沒有這麼簡單過! Kprobes 是

阻力與支撐圖解

CTRL+滑鼠滾輪放大或縮小" src="http://wh.macd.cn/attachments/forumid_14/1_UVgLQpspPx98.gif" width="560" onload="if(this.width>screen.width*0.7) {this.resized=true; this.width=screen.width*0.7; this.alt='點擊在新視窗查看全圖/nCTRL+滑鼠滾輪放大或縮小';}" border="0"

訪問 other process | 使用者 空間

 往任意USER PROCESS的記憶體讀寫kernel/ptrace.c :/* * Access another process' address space. * Source/target buffer must be kernel space, * Do not walk the page table directly, use get_user_pages */int access_process_vm(struct task_struct *tsk, unsigned long

虛擬碼-code complete第9章

之前以為虛擬碼的作用僅僅是讓程式的邏輯更加清晰,並且只能給自己看。今天看了code complete有亮點非常深的體會。首先是虛擬碼的作用不僅僅是給寫代碼的使用,可以把它直接作為程式的注釋。看一個例子,看看如何寫出好的虛擬碼,並且如何使用它。increment resource number by 1   allocate a dlg struct using malloc   if malloc() returns NULL then return 1invoke OSrsrc_init

幾則gdb提示 zz

 http://blog.csdn.net/absurd/gdb的功能強大,與帶GUI的調試器相比有過之而無不及,使用也就相對複雜一些。一方面是它的親和力稍差,畢竟是給程式員用的,不用做得傻瓜化。另外一方面它的命令太多,我們常常淺嘗輒止,只記得幾個常用的命令就知足了,沒有充分發揮它的潛力。今天要調試一段ARM彙編代碼,按常規方法調試彙編代碼非常麻煩,花了點時間看gdb的協助,發現幾個技巧比較有用,這裡做個筆記。 1.        

ALV顯示OO實現

ALV用OO方式實現,似乎沒有function好用,但是可以再一個螢幕上顯示兩個ALV。代碼例子如下:全域資料:DATA : obj_wcl_container TYPE REF TO cl_gui_custom_container, "控制容器類        lt_f4       TYPE lvc_t_f4,        ls_f4       TYPE lvc_s_f4,        obj_wcl_alv TYPE REF TO

sap增強-如何建立badi即實現

項目上要用到badi的增強,今天看了下taw教材,初步瞭解了下badi的操作,簡單介紹下操作即我的想法,以後會更深入。badi的TCODE有se18和se19,se18是建立badi,se19是建立實現badi。當然se18裡也可以建立實現。建立了一個badi的時候會建立一個介面類,這個介面類的概念我覺得和java一樣的,應該是sap莫非java的,有了介面類,當然要有實作類別,下面一一介紹。首先輸入se18輸入輸入任意名字作為一個badi的名字:

sap許可權控制

如有轉載請註明出處:http://blog.csdn.net/donkey2004112103/archive/2009/05/06/4156065.aspx今天終於瞭解了sap如何從技術的角度去實現許可權控制,我覺得許可權控制是這樣實現的,首先想想為什麼不同的使用者可以有不同的許可權了?因為有角色的概念,不同的使用者指派了不同的的許可權,所以有不同的許可權。而角色由參數檔案(profile )組成,參數檔案裡添加了授權對象(authority

總頁數: 61357 1 .... 21359 21360 21361 21362 21363 .... 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.