安裝 ArchLinux @Windows 10 子系統 (WSL)

其實 Windows 10 早在去年就已具有可以在 Windows 環境下執行 Ubuntu 的機制,但還很陽春,效能不佳,問題多多。但從 Windows 10 1803 版本釋出後,WSL (Windows Subsystem for Linux) 已修正諸多問題並大幅提昇執行效能,使其執行原生 Linux 系統於 Windows 10 環境下成為可便利運行的方案。

所以,WSL 到底是什麼?這篇 Arch Wiki 上說明得很清楚:

「Windows 10 包含一個模擬 Linux 內核的子系統,使得 windows 可以運行 Linux 原生應用程序。這個子系統有點像反過來的 Wine,但是它比 Wine 更加底層。默認情況下,此子系統使用 Ubuntu 用戶空間,但是它可以被替換成 Arch。你需要使用一個現有的 Arch 安裝去構建一些軟件包。」

我個人是相當偏好 ArchLinux,因為可以高度客製化。安裝 ArchLinux 於 WSL 下相當簡單,因為國外已經有大神整理成安裝執行包,詳見 Github-ArchWSL。安裝該執行包前,需要先啟動 WSL 功能,使用 Administrator 開啟 PowerShell 命令列視窗,執行下列指令:

> Enable-WindowsOptionalFeature -Online -FeatureName Microsoft-Windows-Subsystem-Linux

重新啟動,然後下載上述 ArchWSL 安裝包,解壓縮並置於準備安裝的目錄下 (我是設定於 C:\Linux\ArchLinux 目錄下)。再來依照執行 ARCH.exe,靜待安裝過程 (非常快),然後完成。

閱讀全文 »

簡述何為瀑布式 (waterfall)軟體分析設計文件?!

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

什麼叫做「Waterfall (瀑布式)」文件?

就是文件整理看起來很用心的樣子,經由不斷地開會與確認諸多細節,然後在某次的會議決定階段告一段落,就給予該文件一個版號 (0.1, 0.6, 0.8 .....)。

所以,一個功能模組或作業流程,經過了幾次的版號更新,最終總算得以定案,然後再交付給 PG 據此撰寫程式碼。

不管大或小的單位,稍有組織性重視文件設計 (得以保存與傳承企業資產,其實是好事),幾乎就是採以這類 "瀑布式" 的開發模式。

如果這樣能順暢移轉至程式寫碼,那當然沒有問題。但是,需求分析其實是一種假設與期望,越是要求精確,越是不容易釐清。

那麼,為何精確度的細節非得要在文件分析階段就要求完整呢? 為何不搭配每一個階段的文件分析告一段落甚或當下就寫成程式碼呢?

每一次版號的演進,文件與程式碼從功能框架的較大目標範圍,再逐漸地往細節 (即精確度)貼近。

簡而言之,設計文件與程式碼本來就是「一體兩面」!設計文件引導程式碼的開發;程式碼的修正更新文件原來的假設。

所以,現實上當文件的版號制訂為最終版時,那麼,程式碼應該也是接近完工了。

為何不這樣作?這樣不是輕鬆又愉快? 其中一個很大的問題就在於,諸多實作的程式開發人員不太容易掌握所謂的「不確定性」開發態度。也就是說,如果沒有提供很精確的細節,開發人員已經不知道要如何寫出程式碼。

總之,各類角色的開發人員,對於軟體開發的最重要修煉就是要懂得先學會如何抓到「大」的主題 (topic),再來才是往「細」的程序/邏輯/欄位 作精。

開源免費下載-完整設計模式 (design patterns) 程式碼(C#.NET)/UML Model 檔

關於爾後我們 HSDc. 軟體設計顧問所開設的課程,除了教材內容尚無開放以外,其它包括完整可執行的程式碼、UML Model 檔,均以開源方式 (open source)免費供下載。

所有開源文件的釋出 (release),均可以透過加入 FB社團-軟體設計鮮思維 獲取最新的訊息。而所有的程式碼/UML Model,我們則是一律統一放置於 GitHub,當然在 README 文件上我們會附上基本的操作說明。

以後這些開源文件,尤其是案例程式碼,我們均會不定期持續版本更新。讀者可以透過 Git 工具隨時作同步更新。

目前提供了兩份開源文件:

另外補充關於上述設計模式 (Design Patterns)案例的說明。

在 C#.NET 程式碼部分 (Java/Spring 版本後續會另行公布),包含了完整 23 個設計模式範例;而關於 UML Model,則還增加了以周遭生活案例的塑模 (modeling),讓每一個設計模式的目的更容易理解。

關於 C#.NET 程式碼的結構部分,主要分為兩個專案 (project):一為 Web MVC by ASP.NET;另一為 Control by POCO (plain-old CLR objects)。

關於本案例的設計模式物件分層結構,可以參考下圖:

圖、圖、設計模式的物件分層結構

圖、設計模式的物件分層結構

閱讀全文 »

Redmine 是 Issue Tracking 還是監控管理的工具?!

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

Redmine, Redmine...,它是一套優秀的 Issue Tracking 工具,但是只要有管理階層介入,一切就都變了調。

我親眼見識過已經有好幾個單位的主管/CEO,利用它來做:

1. 開發時程控管,展現看起來很像一回事的甘蔗圖。

2. 更甚者,要開發人員在其上填寫 TimeSheet,老闆要量化監控每位工奴的工時紀錄 (即使小貓沒有幾隻,但老闆可是在乎得很每個人表面的量化)。

結果理應是開發者之間很好的開發溝通機制,針對最根本開發過程中會遇到的 Issue/Bug/Feature 作有效的紀錄/傳承/學習,更可以與版控系統其內程式碼的提交 (commit)流暢地建立關聯。

一旦淪落為監控/管理的工具,Issue Tracking 大致上就毀了~ 開發者就少有人會願意主動拋出 Issue,如此就遑論可以建立起平行的學習型組織了;即使老闆都這麼說-我尊重與鼓勵每位 Member 踴躍地拋出議題,讓團隊得以永續成長...。

[實作筆記] Visual Studio 2012 新增 MVC 5 Project

Visual Studio 2012 系列並沒有支援 ASP.NET MVC 5 的專案樣版 (template),目前仍僅提供 MVC 3/4 的樣版。

MVC 5 的新功能 (New Features)可參考:What's New in ASP.NET MVC 5。主要因為 MVC 5 直接支援 Bootstrap 作為 Layout and Theme 的 View Framework;且支持的 Bootstrap 版本為 3.02,而原來支持的 2.x 與 3.x 的 CSS Tag 可說大幅翻修,所以若是開發新的 Web 專案,還是乾脆以 MVC 5 作為樣版較為合適。

如需要讓 Visual 2012 可以使用 MVC 5 的樣版,需要:

不過安裝完成後,雖然可以新增 MVC 5 專案樣版,但卻只能選擇-「ASP.NET MVC 5 Empty Project」樣版,也就是只為空的樣版框架,並沒有像如 MVC 4 可以選擇完整 Web 的框架。

可以參考這一篇-Extended Template for ASP.NET MVC 5 from Visual Studio 2012。下載該篇作者所提供的樣版檔案,並複製至下述目錄 (需依該目錄結構):

%USERPROFILE%\Documents\Visual Studio 2012\Templates\Project Templates\Visual C#\Web

閱讀全文 »

{書稿} 建置 Android 開發環境-02

安裝與設定 Eclipse EGit

什麼是 EGit?

EGit 是 Eclipse 的一個團隊提供者 (team provider)套件,它可以讓開發人員直接在 Eclipse IDE 環境內使用 Git 版本控制系統。

EGit 是基於 JGit 套件 (library)所發展,而 JGit 係以 Java 來實現 Git 完整功能的輕量級 (lighweight)套件庫。

安裝 EGit

自 Eclipse 4.2 以後版本,EGit 已成為核心組件,並不需要另行安裝;而若使用 Eclipse 較舊版本,則 EGit 是被視為外掛 (plug-in),可以透過 Eclipse 安裝管理員 (installation manager)安裝。

在 Eclipse 選單上點選【Help】→【Install New Software...】,在出現的對話框內,輸入下列 URL 位址: http://download.eclipse.org/egit/updates

然後按照對話框提示的訊息完成安裝。

圖、安裝 EGit 外掛

圖、安裝 EGit 外掛

閱讀全文 »

軟體思維顧問

專職軟體輔導與教育訓練的獨立顧問。輔導企業資訊單位如何有效組織系統開發與維護;輔導開發人員達成有效的專業分工。傳授如何把軟體作軟 (Keeping Software Soft)的技能,得以提昇系統的彈性/延展,並進而創造系統的再利用價值。

Personal