Làm sao để sếp tức điên
Tại sao lập trình viên ko chịu refactor code?
Posted by Tran Dang Khoa at 8:00 PM
Cách đây vài tuần, một người bạn nhờ tư vấn một framework để phát triển ứng dụng winform trên .NET (dùng C# để phát triển). Cái này làm mình nhớ đến một framework tương tự đã build trên Java để làm một số ứng dụng ERP ở Pissoft cách đây 3 năm.
Sau một số chọn lựa, cuối cùng cũng đã thiết kế được phần core và hoàn tất một số feature chính của framework.
Library nền tảng:
+ Spring .NET
+ NHibernate
Hướng tiếp cận:
+ Domain driven: thiết kế hệ thống từ domain entity (ko xuất phát từ RDBMS)
Những feature chính mà framework hỗ trợ:
+ Sinh tự động Database Access Layer, Business layer từ domain entity
+ Hỗ trợ sinh Hibernate mapping từ domain model (ở mức đơn giản và thông dụng nhất). Mô hình mapping và sinh code dựa trên những best practices mà mình đã làm trên những ứng dụng dựa trên NHibernate hơn 3 năm gần đây.
+ Sinh ra GUI cho các domain entity (chưa hỗ trợ cho các quan hệ nhiều nhiều).
+ Cơ chế Validation trên UI cho winform. Cái này bác Microsoft hỗ trợ chuối quá - nên buộc phải viết lại.
Vài screenshot giới thiệu đến mọi người:
Posted by Tran Dang Khoa at 12:06 PM
(Bài viết này dành cho những ai đã từng sử dụng NHibernate)
Để test những câu Hibernate query, mọi người thường sử dụng Unit test để kiểm tra hoặc viết một app đơn giản để thử nghiệm. Tuy nhiên, có một công cụ khá hữu hiệu để ta có thể làm việc này một cách dễ dàng: NHibernate Query Analyzer. Công cụ này được phát triển bởi Ayende Rahien.
Mọi người có thể download nó về tại đây: http://www.assembla.com/wiki/show/NHibernateQueryAnalyzer
Mình sử dụng NHibernate Query analyzer từ những ngày đầu tiên nó được phát triển (cách đây gần 2 năm). Qua một thời gian, tool này được upgrade lên khá nhiều và cập nhật với phiên bản của NHibernate mới (2.1).
Tool này khá hữu hiệu. Tuy nhiên hơi bị khó xài. Mà hình như tool nào do developer tự phát triển cũng đều khó xài (just funny). Đặc biệt là lúc config ở giai đoạn đầu dễ gặp nhiều vấn đề.
Dưới đây là một số step cơ bản mọi người có thể làm theo để chạy được nó:
1. Add vào assembly dll chứa các entity cần map.
True=1;False=0 true NHibernate.Driver.SqlClientDriver NHibernate.Dialect.MsSql2005Dialect NHibernate.Connection.DriverConnectionProvider Data Source=TIGER\SQLEXPRESS;Database=TinyERP;User ID=sa;Password=1234;
select user from User user left outer join user.UserGroup order by user.UserGroup.NameCó thể xem câu sql sinh ra do NHibernate ở bottom textbox.
Posted by Tran Dang Khoa at 11:20 AM
Posted by Tran Dang Khoa at 5:37 PM
Nhân xem phim Đại chiến Xích Bích, chợt nghĩ ra một sự liên hệ giữa nguyên nhân đại bại của Tào Tháo và nguyên lý High cohesion - Loose coupling(1).
Posted by Tran Dang Khoa at 6:12 AM
Là dân software, việc post bài trên blog có kèm theo những đoạn mã nguồn được highlight syntax là một nhu cầu rất thường gặp.
SyntaxHighligher là một thư viện javascript mã nguồn mở để hỗ trợ bạn làm việc này khá dễ dàng.
Bạn có thể vào link dưới đây để đọc thêm chi tiết
Trang chủ wiki của Syntax Highligher
Nếu bạn ko có host riêng thì có thể đọc bài viết này để setup trên blog của blogger hoặc các blog platform khác.
Cài đặt SyntaxHightlighter trên blogger
Dưới đây là đoạn code được highlight syntax demo sau khi setup.
Đoạn code này demo cho ý tưởng của một người bạn. Just funny!
bool stillAlive = true; object knowledge = null; object experience = null; object idea = null; double money = 0; while(stillAlive && money < ONE_MILLION_DOLLAR) { idea = Thinking(); knowledge = Research(); double moneyFromWorking = 0; experience = Working(out moneyFromWorking); money += moneyFromWorking; IList investors = FindInvestors(idea); money += Invest(idea, knowledge, experience, investors, money); }
Posted by Tran Dang Khoa at 10:14 AM
Xem tại Question of extreme programming
Posted by Tran Dang Khoa at 10:18 AM
Diseño e iconos por N.Design Studio | A Blogger por Blog and Web