[軟體課程]C#.NET 案例實作筆記 Step-by-Step (2017/12/09, 12 Hrs)
上課日期:2017/12/09, 10
週六日上課 (09:30 ~ 16:30),共 12 小時。
(歡迎來電洽談企業內訓包班課程)

線上報名

※課程介紹

這絕對是一個可馬上被應用到工作實務的實作範例,讓學員可以知道,只要確立了可滿足使用者特定目的的系統功能,並大致勾勒出實現功能的主要程序/步驟,就可以馬上導出到控制類別的程式碼。而傳統資料導向的開發模式,卻往往需要等待需求分析的細節與資料庫的表格定義,甚至把表單欄位與資料庫表格耦合一起,難怪乎開發速度相當遲緩。

本課程主要讓學員瞭解「目標導向」的開發方式,應用在學習所謂「新的 IT 技術」,尤其是偏向實作面的 「How-to」,包括工具的操作,與程式的寫碼等,是如何從所設定的主要完成目標 (main-goal),再分解成數個階段性的子目標 (sub-goal),然後一次只克服一小段問題,再往前漸增推進,往下一個階段目標前進。

本課程會從實作過程中,讓學員了解 C#.NET 主要實作技術的應用,包括「ASP.NET MVC」、「Entity-Framework」的 O-R Mapping 技術。然後透過馬上撰寫「單元測試」的把關,後續就可以放心地對程式碼實行「重構」,讓程式碼更簡潔易於維護具彈性度。

從實作練習的過程中,逐漸熟習工具與相關實作技術的使用。「快速學會 How-to (如何做)」的能力,才是技術人員首需具備的技能 (skill)。

※課程目標

  • 藉由一個小型的案例,來展示開發階段 (包括 需求分析、結構設計、程式實作)的主要產出 (artifacts),以及這些產出之間的關聯性。
  • 展示目標導向的功能開發,如何快速從需求分析流暢地橋接至程式寫碼,並配合分層結構的 Enterprise MVC (Model-View-Controller) 框架,而可以應付未來系統重構,讓系統更具彈性與延展性。
  • 了解 .NET 在 ASP.NET MVC 與 Entity-Framework 兩種關鍵技術的應用,並藉由控制類別隔離兩者之間的耦合。
  • 提供作為開發人員的實作範本,可以馬上應用在工作實務上,並未來可以擴展成為團隊的「實作學習筆記」。

※課程大綱

繼續閱讀 »

[軟體課程] 系統分析設計與實作—活用 UML 與 JAVA/Spring (2017/12/16, 36 Hrs)
上課日期:2017/12/16,17, 23,24, 2018/01/06,07
週六日上課 (09:30 ~ 16:30),共 36 小時。
(歡迎來電洽談企業內訓包班課程)

線上報名

※課程介紹

軟體系統分析與設計,並非是如其它製程產業般採瀑布式把所謂設計藍圖鉅細靡遺按圖施工即可。由於軟體需求的高度不確定性與持續變動的本質,所以「應變」才是系統分析設計最根本的要旨;「敏捷、務實性的設計,以及可具重構的程式碼框架」,正是符合應變特質的產出。

在基於以架構為中心來建立團隊具共識的整體觀下,能聚焦在適切開發單位的功能點內,快速地從需求分析導出到實作,找出並克服開發過程中,包括溝通、技能與技術等風險因子。而後基於這樣的框架目標內,得以對系統的結構作重整,卻又不至於影響已有的功能前提下,得以對程式碼施以重構的技巧,讓系統更有延展度與彈性。

觀念的傳授、設計的圖形化塑模表達、程式碼的實作三層次,是我們對於系統分析設計與實作課程的基本原則與態度。

總的來說:作好需求分析-> 讓系統開發更順暢並得以傳承
作好結構設計-> 提昇系統應變彈性度與延展性
提昇實作能力-> 懂得與Google當好朋友找How-to

※課程目標

  • 符合 Agile/SCRUM 的敏捷快速開發精神,快速從分析導出到實作,實踐 I&I (漸增與循環)精髓。
  • 活用 UML 塑模,表達需求分析與結構設計精要的設計,並讓設計圖形力求簡潔與層次感。
  • 界定系統功能需求,建立 Enterprise MVC 程式碼框架,打通從 UI->中間層->資料庫的管道。
  • 透過實作案例,運用 Java/Spring Web MVC 與 Hibernate 框架,實現與橋接 UML 塑模的產出。
  • 課程過程中會帶領學員,把學習與作業成果,利用 GitHub 版控與重構程式碼。

※課程大綱

繼續閱讀 »

敏捷式系統分析設計與實作—活用 UML/SCRUM 與 C#.NET (2017/07/15, 48 Hrs)

§ 課程介紹

****** 
1. 本課程包括 UML Model & C#.NET/JAVA 完整程式碼均會以開源 (open-source)方式置於 GitHub 供學員免費下載與持續更新。
2. 課程的實作會同時提供 C#.NET 案例程式碼與 UML Model 檔。
3. 每一期同類型課程會以 C#.NET 與 Java/Srping 交替作為案例實作展示,學員可免費再次旁聽下一期不同程式語言的課程。
******

HSDc. 顧問開發團隊綜合多年來的大型系統實務輔導與開發經驗,並結合大量研究的理論知識與平台技術,所推出關於完整的系統分析、設計至實作的課程,期能協助軟體開發人員在現實的工作中,能瞭解完整的開發流程與各個角色的工作執掌與產出。

在基於以架構為中心來建立團隊具共識的整體觀下,能聚焦在適切開發單位的功能點內,快速地從需求分析導出到實作,找出並克服開發過程中,包括溝通、技能與技術等風險因子。而後基於這樣的框架目標內,得以對系統的結構作重整,卻又不至於影響已有的功能前提下,得以對程式碼施以重構的技巧,讓系統更有延展度與彈性。

觀念的傳授、設計的圖形化塑模表達、程式碼的實作三層次,是我們對於系統分析設計與實作課程的基本原則與態度。

修習本次系統分析的學員們,也必然可以拿到完整的教材、完整案例的 Model 檔與實作程式碼的對應,帶回去自行練習,並能對映於工作上,如此才會有顯著且實質的效益。

HSDc. 軟體團隊,強調的是「虛」與「實」兩者調和的『知行合一』...。

==================================================================================================
繼續閱讀 »

明年度 (2017) 設計模式 (design patterns)課程的規劃與課程大綱

明年度關於 HSDc. 所開設之「設計模式 (Design Patterns)」課程,已確定與資策會數位教育研究所合作。招生與場地 (均為電腦教室可上機操作)由資策會負責;課程內容 (包括課程大綱與教材製作)與講師由 HSDc. 負責。

課程時間初步規劃為 30 小時,分為 3個星期 (兩週星期六、日,最後一週為星期六)教授完畢。整年度會開設四次課程,C#.NET 與 Java 各兩次輪流開設,也就是約一季開設乙次。第一次課程預計為 3/18-3/19、3/25-3/26、4/9(日),相關課程時程與報名資訊屆時均會同步公佈於 FB社團:軟體設計鮮思維

與原來 HSDc 所規劃的設計模式課程內容,有作過一些調整:

  • 增加物件與軟體設計基礎觀念介紹。
  • 增加對設計模式的結構框架說明。
  • 將 GoF 23 個設計模式分為數個性質相近的主題,每一個主題作系統性的說明。

課程簡介

.NET&Java 所提出 Web MVC (Model-View-Control) 係為 Web 端的解決方案,但並非對整個 Enterprise 系統架構的 MVC 方案-如何設計 具高度彈性具延展性的結構,來解決多變複雜 (包括實體系統的變動與業務邏輯的頻繁變更)的議題。

回歸到軟體人員應具有的基礎功-軟性的設計能力。而這能力的培養,並非由現實對 Web, 資料庫等存取實務技術就可以理解;而是需要研讀大量設計性書籍並具獨立思考的能力,方能設計出某個解決方案 (solution) 的結構並應用於實務系統的運作上。

的確,從無到有或沒有方向的摸索是相當不容易的,所以我們會期望能借重軟體先輩們的智慧結晶與設計法則 (Design Patterns),解決現實設計所面臨的困境與難題;甚而更進一步,能進而活用與創造出所屬自己與團隊的 "設計模式"!

四人幫 (GoF, Gang of Four) 著作的「設計模式 (Design Patterns)」,可以說是軟體領域的孫子兵法。書中介紹的 23 個設計模式,已被大量運用在系統框架(Framework)及應用領域上;不過該書其實艱奧難懂,如同金庸小說中的「九陰真經」上卷一般,充斥的儘是心法,若沒有真經下卷功法的實務修練,是極難打通任督二脈的。

本課程講師群係累積了10數年在軟體設計領域上持續研究學習 (大量研讀名家著作/論文)以及實務的經驗 (大型系統開發、顧問/授課輔導、產品開發...),期能以所累積的心得與實務,並配合現實的實務技術,把每一個設計模式,寫成淺顯易懂的案例,讓有志於從事軟體設計業的學員們,可以理解設計模式所揭露的目的與意義,更能應用在現實的工作專案上。

繼續閱讀 »

創意確是來得比程式碼品質有價值;但好的程式碼仍是有意義的

*** 本文同步發表於 FB 社團-軟體設計鮮思維 ***

前幾日在許多新聞電視台播放這則新聞:「牙醫預約APP 七年級生月營收20萬」。

的確很欽佩這位七年級生,剛出社會沒多久,就將自己的理想與創意實現,並因此而創造出公司的金流 (cash flow),立穩經營的腳步。

然後在看播放新聞的過程中發現到,喔,該 App 創辦人兼開發者,應是利用 GitHub 作版控 (version control)與維護程式碼的。這很正常更是值得鼓勵與借鏡,即使少數三兩個軟體人員,藉由雲端儲庫 (cloud repository)作版本管控,更能實行遠距協同開發與溝通,讓協同開發更形順暢。

然後又一瞥看到開發者撰寫的程式者,只是一小段而已,不過應該看得出在某一個方法 (method) 內撰寫了許多 if..then..else 的條件判斷陳述。

喔,這其實算是違背了「Clean Code」簡潔程式碼的原則。每一條判斷陳述可能是代表了單一的工作單元 (unit of work),當條件判斷陳述越多、變化越頻繁,越是難以維護。一般這最好是施以重構 (re-factoring),運用「萃取 (extract)」的技巧,分派單一工作至相對應的類別/方法 (class/method)內,讓程式碼回歸到簡潔易讀好維護的原點。

這讓我又再次思考一個問題:到底發揮創意並具體實現最重要,還是要求程式碼乃至工作的品質?

這幾年個人乃至於所屬的顧問團隊,可說都相當要求系統 (包括分析設計產出與程式碼)的開發至維護期間的品質,目的是為了讓開發更形直覺順暢,以及讓後續的維護更能應付變動,如此更能增進系統整體的價值。

但個人更是推崇 Maker 的文化,從發想到創意的實現,一切自造,需整合相關軟、硬體知識,並從過程中持續學習與修正不足之處。

創意的發揮來得比單一所擁有熟練的技能甚或品質更有價值!!

那回歸軟體領域,如此為了維繫軟體程式碼的意義何在? 這可真不容易回答!

繼續閱讀 »

關於軟體需求變動的一個小案例思考

*** 本文同步發表於 FB 社團-軟體設計鮮思維 ***

一個發生在昨天輔導單位的一個小小的案例,應該也可以藉此讓許多開發人員反思下...。

某一技術高深的程式開發人員 (就簡稱 PG)對一已進行開發至一半時間的專案,突然 User 代表 (關係利益人,就簡稱 User)丟了一個針對要計算折扣代碼的邏輯的需求進來,而且看來好像挺複雜的樣子。

PG 心態上不是很愉快,都已進行至一半,現在才突然有這樣的需求,需要為此多花一至兩天的時間來撰寫它,而這會影響到既定的上線時間。

嗯,我的判斷是當然會多花一時間,但不至影響到預定的時間。心態上的不適 (為何這麼重要的需求到中後期才提出來)遠比實作的難度大很多!

我能作的是什麼? (在這個極小型的專案我兼職擔任 PM),幫開發人員多爭取一天的休息時間,讓他們心理好過些。

然後昨天這位 PG 花了很多時間在撰寫相關這邏輯的實作,甚至很認真的透過 SA 與 User 提相關的問題。

嘿!這時刻我給他制止了。。

繼續閱讀 »

第 1 頁 / 共 248 頁123456789101112...203040...最後一頁 »