2010年11月19日 星期五

design pattern的應用範例 - log



requirements:
1. A consistent and simplified interface for logging information to any destination
2. Configuration settings determine When, Where, Format
3. extensible & flexible

example:
LogEntry logEntry = new LogEntry();
logEntry.EventId = 100;
logEntry.Priority = 2;
logEntry.Message = "Informational message";
logEntry.Categories.Add("Trace");
logEntry.Categories.Add("UI Events");
Logger.Write(logEntry);


Specs:
1. Enable control of what and how much information is logged
2. Enable logged information to be consumed b
y different monitoring/analysis applications with 3. little or no
customization
4. Provide useful and rich information in the logged data
5. Support for logging in distributed applications
6. Enable scenarios like metering and workflow tracing for web services







2010年10月14日 星期四

技術經理的工作

Deliver results that meet user needs
Build up a team
Lead team
Manage project & team members
Estimate, plan, execute, control & mediate
Manage risks
Well communicate with stakeholders and team
Have experience in software development and know the domain
Solve problems and resolve conflicts

優秀系統架構師的特徵

Expertise
  • In the problem domain and the software engineering
Leadership
  • To earn trust, to motivate, and to drive the technical effort across the various teams
  • To make critical decisions under pressure and make those decisions stick
Communication
  • To persuade, and to mentor team members
Goal-orientation and Pro-activity
  • Focus on results

優秀系統分析師的特徵

Have experiences in the domain and SW dev
Elicit real requirements
Document complete and understandable Specs
Effectively manage requirements
Be alert to new technologies
Advise the project (and customer) of methods, process, and tools that related to requirement development and management tasks
Use metrics to measure, track, and control requirements-related activities and results.
Be able to facilitate discussions and to mediate conflicts.

優秀系統設計師的特徵

Have a solid working knowledge of requirements and architecture
Present your solution systematically & precisely
Use widely adopted metaphor
Be very good at some technologies, such as UI, DB, Web, XML,…
Know the nuts and bolts of implementation
Find available design, components, or library
Coach and enforce coding guidelines
Verify implementations

優秀程式設計師的特徵

  • 負責
  • * Write right code to solve the problems in time
  • * Only part of the job
  • * Test your code
  • * Maintain Code Quality
  • 解決問題的能力
  • * Be good at necessary tools
  • * PL, IDE, platform, Library
  • * Search & Find resources
  • * Learn effectively and quickly
  • * Web, Data Access, XML, ….
  • 良好的溝通能力