UI層的組織方式,拒絕把UI當成”UI”使用

在VB,.Net等微軟方向的程式員成長初期,一般都是從UI的拖拽開始的。但最早認識UI的程式員在UI上吃的虧是最大的。在看系統的代碼時,有時會出現這樣的代碼,當下拉選擇框發生變化時,執行尋找資料庫的方法。當一個Tree的節點被選中,要從其tag中找到綁定的對象,找到後要判斷某個複選框是否被選中,然後if選中做什麼,else

設計敏捷後,才是真正敏捷了

敏捷出現的是因為現在系統的業務越來越複雜,在系統的設計和開發過程中甚至項目已經進行到試運行階段,客戶都有可能會改變需求,作出一些變化,我們要快速的響應使用者需求的變化。我們能夠要求使用者不改變需求嗎?這肯定是不可能的,軟體的價值就是為使用者提高生產效率,讓軟體的成本一定得低於軟體所帶來的價值,這樣的軟體才是一個成功的軟體(雖然在國內,很多項目都不是這樣的)。當一個需求不再能夠為使用者提高成產效率而服務,那使用者當然希望改變他。    那面對使用者對需求的改變,我們要接受嗎?你可以拒絕一次,兩次,

敏捷設計和領域驅動設計

敏捷設計和領域驅動設計是兩個維度概念,敏捷開發是一種設計思想,而領域驅動設計只是一種具體的組織商務邏輯的設計方式。在組織商務邏輯方面還有其他的設計方式,例如面向過程設計,表模組設計,或是類似Java

基礎設施層,為系統提供底層功能

基礎設施,就是為系統提供具體的技術支撐。資料持久層(DAL)也是基礎設施層的一種,但資料持久層一般代碼量和類的數量都比較多,所以會單獨提出來,其餘的就提到另一個基礎設施層裡面。除了DAL之外,還有那些要放到基礎設施裡面呢?例如把一個對象產生Word報表,把系統中的訊息當成Email發送給指定的郵箱。基礎設施在本質上和資料持久化層是一樣的,一般很少有成業務或是儲存各種狀態的一個業務工程。基本上都是一個個獨立功能的函數,來完成特定的額底層功能,這樣功能會在AppService層被組織起來,完成特定的

TDD,重構與系統品質

在我們使用一個新的類庫或是學習一個新的知識點的時候,最想得到的是什嗎?我最想得到就是例子代碼,通過例子,看到效果,給我一個整體的感官認識。而其次就是協助文檔。在《領域驅動設計與模式實戰》一書中,作者給TDD這樣的一個描述:使用測試或樣本來詳細說明行為。而且這些單元測試樣本可以被反覆用於多種用途。例如在開發過程中可用它們來尋找缺失或不正確的行為。在重構時,測試起到安全網作用。開發完之後可以作為品質文檔。TDD中所使用的關鍵準則就是重構。一開始的時候,你可能把一個需求用單元測試寫出來,然後用代碼去實

資料在入庫前資料檢查的三種方式

當前一般的業務系統都會涉及到資料的持久化操作,但資料的持久化介質由於很多原因,一般都會選擇關聯式資料庫。   資料的重要性大家肯定都知道,商務邏輯寫的再正確,品質再高,如果資料來源有問題的話,得到的結果一樣也是錯誤的。所以保證資料庫中資料的邏輯安全性在系統開發中是很重要的一個工作內容。    我們這裡所說的安全性主要是資料邏輯安全性,因為像型別安全,主鍵唯一等這些資料庫都可以為我們檢測,但邏輯安全,資料庫就無能為力了,可能就需要我們系統自身的邏輯來維護。1.     

敏捷Team Dev中領導的表現對團隊的影響

註:我們這裡指的領導是項目團隊中的小領導,不是公司的大領導。一般情況下,敏捷團隊中每個人都是平等的,,敏捷團隊是靠自我組織,自我管理的。但為什麼我又說敏捷團隊裡面有領導呢。在現實情況中,每個團隊都不可避免的有領導,例如傳統意義上的專案經理,技術經理(即我經常說的技術負責人),以及Scrum中的產品負責人,架構師等,這些頭銜在他們身上,已經註定他們要承擔更多的責任,當然就有了更多的權利。我日常的開發過程中,整個敏捷團隊應該是緊緊地團結在一起合作的,應該儘可能少的讓這些有管理頭銜的成員使用自己的管理

項目敏捷開發方法

敏捷團隊主要採用以下幾種工作方式:做為一個整體工作;按段迭代周期工作;每次迭代都交付一些成果;關注業務優先順序;檢查與調整。1.敏捷小組做為一個整體工作,為一個目標而努力。這是整個團隊成功的關鍵,如果團隊的成員各個都各懷個的心思,那麼這個團隊的凝聚力以及工作的效率就會大大降低。敏捷團隊裡也有分工,有專案經理,有架構師,有分析人員,設計人員,開發人員測試人員等等,各自有個自負責的任務。但他們不是獨立工作的,架構師和開發人員以及專案經理都可能會和分析人員一起來分析客戶的需求,設計人員,架構師以及開發

使用者故事任務分解和分層開發的關係

使用者故事是什麼呢?使用者故事是敏捷開發中,為了和使用者交流需求方便而出現的。他站在使用者的角度以使用者可理解的文字來描述需求。任務就是為了完成一個使用者故事,系統開發和設計人員會把使用者故事分解成幾個任務,然後把這些任務分配給某些人,讓這些人去完成這些任務,進而實現整個使用者故事。當然這涉及到一些同步協作的問題。系統的分層開發相信大家都不陌生,當我拿到一個業務系統的項目時,首先我會使用領域驅動開發模式,然後使用DDD分層,使用分層可以大大降低系統的複雜度。那使用者故事的任務分解和分層開發有什麼

系統分層 無->簡單三層->DDD分層

現在在做企業開發應用的過程中,如何分解一個大的複雜的系統是非常重要的工作。而系統分層就是分解系統的一個很重要的方式。->沒有分層在最初開始我的程式員生涯時,做的第一個系統是沒有什麼分層的概念。到做的第二個算是系統的東西時,就有了簡單分層概念,但並不是很明確。裡面既有簡單的三層分層,又有把資料從資料庫裡面讀出來,直接把資料表(DataTable)綁定到頁面上的代碼。->簡單三層直到工作後,才參照PetShop做了工作後的第一個成型的系統,但在實際用的時候也會發現很多不合理的地方。例如裡

項目規模估計 故事點VS理想日

故事點和理想日是Mike

jquery ~ $.inArray(value,array) 產生的一個參考型別的問題

解決完了這個問題之後,還是感歎,基本的東西一定要理解透徹啊。今天有朋友問了個問題,如下var testarr=[{"a":"0"},{"b":"1"},{"c":"2"}];alert($.inArray({"a":"0"},testarr));    說這個值總是返回-1;第一眼,我沒注意到,於是自己寫了一段給他看。var obj={'m':'1'};var

應用服務層的作用

應用服務層位於UI層和領域模型,基礎設施層之間的一個層,其主要的作用就是組織領域邏輯層和基礎設施層,完成一個操作周期或是某個特定的功能,為UI層提供一個大粒度,清晰的,應用的API。這個層是我在學習DDD分層時最難理解的層。一度我把應用服務和領域邏輯中的服務混淆起來。領網域服務的作用是領域邏輯中的可以完成的一個動作,這個動作可能需要幾個沒來沒有什麼很深的內在聯絡的領域對象共同來完成。完成這些動作就需要使用領網域服務。而應用服務概念上面已經解釋過了,和領網域服務完全不一樣。系統中應該存在哪些應用服

敏捷設計的簡單和靈活

敏捷設計是為瞭解決複雜的軟體並且在開發過程中需求再不斷的增加和變化。對了,我好像在每次說敏捷的短文中都會提高變化。是的,我認為這個詞是導致軟體危機,出現設計原則,設計模式以及敏捷開發的重要原因之一。敏捷設計要設計簡單,靈活,這看起來是一個矛盾的做法。怎麼是簡單呢?所謂簡單就是在解決問題時,要儘可能的使用最普通的類,能用普通類來解決問題的,就不需要使用繼承和多態以及一些複雜的實現方式。當前的解決方案如果能夠解決當前迭代故事,那麼就解決這些迭代故事即可。不用考慮過多的擴充,但下面的故事以及根據經驗分

zend studio 9 字型,顏色,快速鍵等相關設定

由於zend又出新版的studio,為了感受一下所說的快速,安裝了zend studio 9 特意感受一把。一直以來,都不覺得zend studio比dreamweaver好用。可能是先入為主的觀念,我把zend studio8的代碼著色風格全改成了DW風格,哈哈。現在裝了zs9,從頭修理一下,稍作修改,特以記錄。一、修改字型  沒想到zend studio

jquery animate 的應用

先看一下官方對此方法的介紹官方地址 http://api.jquery.com/animate/.animate( properties, [duration,] [easing,] [complete] )   version added: 1.0properties A map of CSS properties that the animation will move toward.duration A string or number determining how long

jquery 中的 $(“#air”) 與 document.getElementById(“air”) 的區別

以前沒注意過,認為jquery 中的 $("#air") 與 document.getElementById("air") 是一回事,指的是同一個東西。在今天寫一個canvas的小程式時,才發現這兩者是不一樣的。直接用alert()來顯示這兩個方法倒底獲得的是什麼。代碼如下:<!DOCTYPE HTML><html><head><meta charset="utf-8"><title>air</title><link

jquery 父頁面尋找iframe子頁面內容 子頁面內容尋找父頁面內容

父頁面代碼<!DOCTYPE HTML><html><head><meta charset="utf-8"><title>無標題文檔</title><script type="text/javascript" src="jquery-1.4.4.min.js"></script></head><body> <div

phpdoc 注釋關鍵字含義

/** * @abstract 申明變數/類/方法 * @access指明這個變數、類、函數/方法的存取許可權 * @author 函數作者的名字和郵箱地址 * @category 組織packages * @copyright指明著作權資訊 * @const指明常量 * @deprecate指明不推薦或者是廢棄的資訊 * @example 樣本 * @exclude指明當前的注釋將不進行分析,不出現在文擋中 * @final指明這是一個最終的類、方法、屬性,禁止派生、修改。 *

js window.location

例 http://www.google.cn/a/201105/a564.html?a=1#aa 

總頁數: 61357 1 .... 8749 8750 8751 8752 8753 .... 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.