Time of Update: 2018-12-07
文章目錄 並髮式編程多任務作業系統多線程vs多進程安全執行緒線程的生命週期線程的類型
Time of Update: 2018-12-07
文章目錄 fabric是什嗎?安裝任務函數Fabric提供的命令管理伺服器串連管理SSH密碼、使用者、連接埠小結
Time of Update: 2018-12-07
現在,我們有了一個產品目錄介面,使用者如果看到滿意的產品,就可以將其放入購物車。下面就讓我們來實現購物車的功能。 首先要做一下簡單的分析和設計。購物車應該顯示一系列產品的清單,其中列出了買方選中的產品。但是這個清單沒有必要馬上儲存到資料庫,因為直到付款之前,使用者隨時都有可能改變主意。我們只需要在使用者的session中記錄這些產品就可以了。購物車中的條目 購物車中的條目與產品(Product)很
Time of Update: 2018-12-07
前一節我們實現了使用者管理,本節對使用者登入和登出進行處理。由於我們已經引入了django.contrib.auth應用,使用者的登入和登出處理變得非常簡單。我們已經可以在view函數中判斷使用者是否已經登入以及擷取使用者資訊:if request.user.is_authenticated(): #判斷使用者是否已登入 user = request.user; #擷取已登入的使用者else: user = request.user;
Time of Update: 2018-12-07
我想大家都遇到過這種情況: 需求不是很明確而且肯定會變化; 還沒有開始做分析設計,對工作量心裡沒譜; 上面給了期限,卻不給資源…… 這種情況下,你心裡知道風險極大,卻必須接受這個工作。 記住,你是開發人員,你的本分是系統實現——你只應該承擔開發的風險。 怎麼樣更好地“堅守本分”,不干預你職責外的風險呢? 其實有很好的辦法, 本文給出一些建議。 1. 關於工作量 工作量是一個機率!
Time of Update: 2018-12-07
我們都用過Django的django-admin.py和manage.py。django-admin.py是一個命令列工具,可以執行一些管理工作,比如建立Django項目。而manage.py是在建立每個Django project時自動添加在項目目錄下的,只是對manage.py的一個簡單封裝,其功能是將Django
Time of Update: 2018-12-07
曾幾何時,Ajax已經統治了Web開發中的用戶端,而REST成為web世界中最流行的架構風格(architecture style)。所以我們的選擇變得很簡單:前端ajax訪問後端的RESTful web service對資源進行操作。 Django中有一些可選的REST framework,比如django-piston,django-tasypie。 但是我和google(呵呵,不好意思)推薦這個:Django REST framework。因為這個架構的幾個特點: 1. 名字好!直入主題
Time of Update: 2018-12-07
通常我們考慮專案管理的時候,主要考慮範圍,時間和成本。在《項目時間——你會討價還價嗎?》中,簡單涉及了風險的因素。完整的專案管理,或者說真正的專案管理,是在項目相關的5個因素中尋求動態平衡。這五種元素是:範圍,時間,資源,品質,風險。 好的專案經理會均衡考慮這五種因素,根據需要略有側重,但整體上有很好的把握,可以稱為均衡型管理風格。 忽視任何一個因素的專案管理都是有問題的專案管理。下面舉出5種極端的情況。 救火型“客戶需要該系統在XX時間之前必須上線!”當銷售或老闆這樣對你咆哮時,你多半會採取
Time of Update: 2018-12-07
《Rootless Root:The Unix Koans of Master Foo》, 《Unix編程藝術》一書的附錄D,原作者不詳 導言 《無根的根》這部心傳的收錄集在西山純淨的空氣中得以儲存數十年,它的發現在學術圈中掀起軒然大波。這些出土文稿是否為早期 Unix 教義的新發現?抑或僅是後世高明的贗品?那些半神秘的人物,像尊者 Thompson、Ritchie 和 Mcllroy,是否以此發展出我們所處時代的教義?答案無法確知。各方爭論均被收入那本經典之作,《編程之道》(The Tao
Time of Update: 2018-12-07
從廣義上講,中繼資料不僅可以描述內容本身,也可以描述整個內容體系。這就產生了內容中繼資料體繫結構的問題。內容中繼資料可以分為以下幾種:內容中繼資料直接關於內容的資料。這個層次的中繼資料和內容相關,不同的內容類型會有不同的中繼資料。比如,對於視頻內容和常值內容,其中繼資料的結構會有差別。內容中繼資料根據內容的分類別關係,會有對應的繼承關係。關係中繼資料由於內容中繼資料之間具有關係,所以需要有資料記錄這項中繼資料之間的關係。這裡資料不妨稱之為關係中繼資料。彙總中繼資料除了中繼資料之間有關係外,內容之
Time of Update: 2018-12-07
Time of Update: 2018-12-07
Flex中的大部分組件(component)和所有的容器(container)都實現了IDataRenderer 介面,從而提供預設的資料繫結功能。IDataRenderer介面的一般實現方式如下: // Internal variable for the property value. private var _data:Object; // Make the data property bindable. [Bindable("dataChange")] //
Time of Update: 2018-12-07
名概念;動概念;組合概念;模式名概念表示存在;動概念表示關係,包括時間關係,空間關係,相互作用關係等等。通常我們在進行系統分析的時候,會用“概念性模型”表示名概念及其關係,用分析模型表示動概念的作用方式。概念組合可以產生新的概念,新概念的類別與組合的方式有關。只有這個組合的概念經常出現時,我們才會用一個新的名稱為其命名。概念的組合方式也可能會重複出現。如果出現得比較頻繁,我們也會為其命名。這種重複出現的組合方式(或者說概念之間的作用關係)叫做模式。關於概念的基礎資料,請參考:什麼是概念概念的分類
Time of Update: 2018-12-07
在SkinnableComponent中,可以聲明SkinPart元標籤對Skin進行約束,同時在組件中提供對Skin元素的引用:[SkinPart(required="false")]public var labelElement:SimpleText;如果聲明了SkinPart並且required="true",則Skin中必須包含該類型燈元素並且具有相同的id:<s:SimpleText id="labelElement"
Time of Update: 2018-12-07
除了使用actionscript中的事件外,flex還允許開發人員自訂事件。典型的自訂事件是繼承flash.events.Event類,並在其中聲明多個事件名稱。如下:package test.events...{ import flash.events.Event; public class MyEvent extends Event ...{ public function MyEvent(type:String, bubbles:Boolean = fals
Time of Update: 2018-12-07
上一節我們實現了一個”能看不能用“的購物車,現在我們來使用這個購物車。首先是產品目錄介面中的”加入購物車“連結,我們希望點擊這個按鈕後,在購物車中添加該產品(添加的規則是如果購物車中已經有該產品就增加數量,如果沒有就增加條目),然後顯示購物車。首先我們設計一個”RESTful“的加入購物車連結,其形式是: http://localhost:8080/depotapp/cart/add/xxx 其中xxx為產品的ID。 這需要在depotapp/urls.py中增加一條配置:[python]
Time of Update: 2018-12-07
我們已經實現了登入和登出功能,但是它還沒有起作用。因為匿名使用者還是可以通過直接輸入url:http://localhost:8000/depotapp/product/list/ 訪問到產品管理介面。這就好像你在門上加了把鎖,卻沒有把窗戶關上一樣。所以我們還需要進行存取控制。我們這裡實現最簡單的控制,非登入使用者禁止訪問產品管理介面。在Django裡面,只需要在相應的視圖函數前面增加@login_required修飾符即可: from
Time of Update: 2018-12-07
什麼是中繼資料中繼資料(metadata)是從資料發展而來,同時作為資料的一種功能。中繼資料是“資料的資料”,是對資料的標識——我們通常通過一組屬性或元素來描述特定的資源,而這些屬性或元素就是該資源的中繼資料。典型的例子是圖書館的書目,就是一種中繼資料。書目包含作者、題名、出版日期、主題、存放架號等屬性。對於每本指定的書,都會在書目中有上述屬性值。這些資料值就是該書的“中繼資料”。 中繼資料的層次分層管理是人們解決複雜問題的一種思路。通常人們會將資源按照一定的層次進行分類,以便於管理。中繼資料
Time of Update: 2018-12-07
Flex4中的spark組件將顯示和邏輯完全分開,通過指定SkinnableComponent的skinClass樣式指定其Skin。Skin和組件之間通過state ,data 和skinpart 進行互動。SkinnableComponent和Skin都繼承自UIComponent。 接下來的問題是:Skin和Component都是組件(UIComponent),依據什麼原則將組件行為劃分到組件邏輯和顯示? 參考An Introduction to the Gumbo Component
Time of Update: 2018-12-07
事件監聽器同樣要繼承EventDispatcher類,這樣就可以使用addEventListener方法:public function addEventListener(type:String, listener:Function, useCapture:Boolean = false, priority:int = 0, useWeakReference:Boolean = false):void使用 EventDispatcher 對象註冊事件接聽程式對象,以使接聽程式能夠接收事件通知。