|
|
|
|
یکشنبه یکم آذر 1388
Larry O'Brien recently interviewed three of the Gang of Four about their seminal work on patterns, "Design Patterns 15 Years Later: An Interview with Erich Gamma, Richard Helm, and Ralph Johnson".
Larry: How would you refactor "Design Patterns"? Erich: We did this exercise in 2005. Here are some notes from our session. When discussing which patterns to drop, we found that we still love them all. (Not really—I'm in favor of dropping Singleton. Its use is almost always a design smell.) So here are some of the changes:
* Interpreter and Flyweight should be moved into a separate category that we referred to as "Other/Compound" since they really are different beasts than the other patterns. Factory Method would be generalized to Factory.
* The categories are: Core, Creational, Peripheral and Other. The intent here is to emphasize the important patterns and to separate them from the less frequently used ones.
* The new members are: Null Object, Type Object, Dependency Injection, and Extension Object/Interface (see "Extension Object" in Pattern Languages of Program Design 3, Addison- Wesley, 1997).
These were the categories:
* Core: Composite, Strategy, State, Command, Iterator, Proxy, Template Method, Facade
* Creational: Factory, Prototype, Builder, Dependency Injection
* Peripheral: Abstract Factory, Visitor, Decorator, Mediator, Type Object, Null Object, Extension Object
* Other: Flyweight, Interpreter
As I said above these are just notes in a draft state. Doing a refactoring without test cases is always dangerous.
Quote: Theory is when you know something, but it doesn't work. Practice is when something works, but you don't know why it works. Programmers combine Theory and Practice: Nothing works and they don't know why. 
ساعت 7:15 به قلم مهرداد
|
|
|
|
|
|
|
|
|
جمعه بیست و نهم آبان 1388
Matt: The discussion about the Agile Process Maturity Model is exhaustive and controversial. Let's start fresh. Could you give us your elevator pitch?
Scott: The short story is that that the APMM is a contextual framework for effective adoption and tailoring of agile processes and practices to meet the unique challenges faced by a system delivery team. There are three maturity levels (four, if you count level zero, which I don’t) that build upon each other:
-
Level 1 Agile processes, such as Scrum and Agile Modeling, address a portion of the development life cycle. Level 1 processes and practices are optimized for small, co-located teams and are the building blocks for more mature solutions.
-
Level 2 processes, such as Dynamic System Development Method (DSDM) and Open Unified Process (OpenUP), go further by covering the full Agile “system delivery life cycle” from project inception all the way to transitioning the system into your production environment (or into the marketplace, as the case may be). Level 2 Agile processes are self governing within an appropriate governance framework, recognizing that teams are not completely free to make any decision that they want but instead are both constrained and enhanced by your organizational environment and goals. Level 2 life cycles are both risk and value driven; mature teams strive to reduce their business and technical risks as early as possible and thereby increase their chance of success by doing so.
-
Level 3 processes, which are tailored forms of level 2 processes, are disciplined Agile delivery where one or more scaling factors are applicable. The scaling factors are team size, geographical distribution, regulatory compliance, environmental complexity, organizational distribution, and enterprise discipline.
گزیده: «وقتی دو قطار در یك تقاطع به هم میرسند باید هر دوی آنها توقف كامل كنند و هیچكدام تا موقعی كه دیگری عبور نكرده است، حركت نكند.» قانونی در كانزاس
ساعت 20:40 به قلم مهرداد
|
|
|
|
|
|
|
|
|
دوشنبه بیست و پنجم آبان 1388
Larry O'Brien recently interviewed three of the Gang of Four about their seminal work on patterns, "Design Patterns 15 Years Later: An Interview with Erich Gamma, Richard Helm, and Ralph Johnson".
Larry O'Brien: "Designing object-oriented software is hard," are the first words of Design Patterns. Are those words still accurate?
Richard Helm: Software design is always hard. Although most modern development environments do lots to reduce complexity through reusable libraries and toolkits (Eclipse, Apple, Microsoft), designing a software solution to the business problem is still hard.
Ralph Johnson: Designing software is hard. That is what makes it so fun! People who are good at designing software enjoy solving hard problems, at bringing order to chaos, at overcoming difficulties. Things that used to be hard are now easy, but we have moved on to working on problems that would have been impossible 20 years ago. OO programming helps but does not eliminate the difficulty of design.
Quote: If debugging is the process of removing bugs, Then programming must be the process of putting them in. --Edsger Dijkstra
ساعت 22:58 به قلم مهرداد
|
|
|
|
|
|
|
|
|
جمعه بیست و دوم آبان 1388
بر اساس گزارش جدید صندوق بین المللی پول ، ایران رتبه اول را در آمار مهاجرت نخبگان از میان 91 كشور در حال توسعه یا توسعه نیافته دنیا كسب كرده است . به گزارش عصر ایران صندوق بینالمللی پول در این مورد گزارش داده است كه سالانه حدود 180 هزار ایرانی تحصیلكرده به امید زندگی و یافتن موقعیت های شغلی بهتر از كشور خارج میشوند . این صندوق بین المللی در گزارش خود می افزاید كه رقم خروج حدود 180 هزار نخبه تحصیلكرده از ایران ، به معنی خروج سالانه 50 میلیارد دلار ارز از كشور است . طبق این آمار هماكنون بیش از 250 هزار مهندس و پزشك ایرانی و بیش از 170 هزار ایرانی با تحصیلات عالیه در آمریكا زندگی میكنند و طبق آمار رسمی اداره گذرنامه، در سال 87 روزانه 3/2 نفر با مدرك دكترا، 15 نفر با مدرك كارشناسی ارشد، و صدها نفر با مدرك كارشناسی از كشور مهاجرت كرده اند . مرجع:آینده نیوز
گزیده: ندارد.
ساعت 9:22 به قلم مهرداد
|
|
|
|
|
|
|
|
|
جمعه بیست و دوم آبان 1388
 Reference: Letters to Mindanao
Quote: The first 90% of the code accounts for the first 90% of the development time. The remaining 10% of the code accounts for the other 90% of the development time. --Tom Cargill
ساعت 9:5 به قلم مهرداد
|
|
|
|
|
|
|
|
|
سه شنبه نوزدهم آبان 1388
TEAM = Together Everyone Achieve More This is the real meaning of team work:
 Reference: An email from Mr. Ghamsari.
Quote: There are two worlds: the world we can measure with line and rule, and the world that we feel with our hearts and imagination. Leigh Hunt Reference: Grady Booch’s blog
ساعت 21:24 به قلم مهرداد
|
|
|
|
|
|
|
|
|
شنبه شانزدهم آبان 1388
وقتي كارفرما و كاربر سيستم نرمافزاري، دانش و تجربهي توليد سيستم نرمافزاري را داشته باشد، هم ميتواند كمك شما باشد و هم ممكن است شما را به دردسر بيندازد. مثلاً كاربر به جاي آن كه بگويد «نياز من اين است كه اطلاعات پرسنل را در سيستم نگهداري كنم»، بگويد «من فرمي ميخواهم كه در آن نام و نام خانوادگي را تايپ، محل تولد را از كمبوباكس و جنسيت پرسنل را با رديوباتن انتخاب نمايم». مشكل از اينجا ناشي خواهد شد كه كاربر و مشتري به جاي بيان نيازها و خواستههايشان، امكاناتي را از شما مطالبه خواهد كرد كه ناشي از راهحلي است كه در ذهنش نقش بسته است و ارتباط مستقيم با میزان تسلط وی بر راهحلهاي نرمافزاري و تكنولوژيهاي ساخت نرمافزار دارد. آن چه كه به واقعيت نزديكتر است، تسلط بيشتر و بهتر تيم توسعه بر تكنولوژي و راهحلهاي نرمافزاري است. مشكل ديگر آن است كه بسياري از مواقع، تيم توسعه به دلايل متعدد به دنبال راهحلي است كه تجربهي انجام آن را داشته باشد و از سوي ديگر سهلالوصول باشد، هر چند كه برخي نيازهاي كاربران را پوشش ندهد.
گزيده: متواضع باش تا دوست بسیار داشته باشی. زرتشت
ساعت 20:48 به قلم مهرداد
|
|
|
|
|
|
|
|
|
شنبه شانزدهم آبان 1388
A SPANISH Teacher was explaining to her class that in Spanish, unlike English, nouns are designated as either masculine or feminine. 'House' for instance, is feminine: 'la casa.' 'Pencil,' however, is masculine: 'el lapiz..' A student asked, 'What gender is 'computer'?' Instead of giving the answer, the teacher split the class into two groups, male and female, and asked them to decide for themselves whether computer' should be a masculine or a feminine noun. Each group was asked to give four reasons for its recommendation.
The men's group decided that 'computer' should definitely be of the feminine gender ('la computadora'), because: 1. No one but their creator understands their internal logic; 2. The native language they use to communicate with other computers is incomprehensible to everyone else; 3. Even the smallest mistakes are stored in long term memory for possible later retrieval; and 4. As soon as you make a commitment to one, you find yourself spending half your paycheck on accessories for it.
(THIS GETS BETTER!) The women's group, however, concluded that computers should be Masculine ('el computador'), because: 1. In order to do anything with them, you have to turn them on; 2. They have a lot of data but still can't think for themselves; 3. They are supposed to help you solve problems, but half the time they ARE the problem; and 4. As soon as you commit to one, you realize that if you had waited a little longer, you could have gotten a better model.
The women won.
Reference: An email from Mr. Ghamsari.
Quote: There are two ways to write error-free programs; only the third works --Alan J. Perlis
ساعت 20:28 به قلم مهرداد
|
|
|
|
|
|
|
|
|
یکشنبه نوزدهم مهر 1388
آلفرد نوبل از جمله افراد معدودی بود که این شانس را داشت تا قبل از مردن، آگهی وفاتش را بخواند! زمانی که برادرش لودویگ فوت شد، روزنامهها اشتباهاً فکر کردند که نوبل معروف (مخترع دینامیت) مرده است. آلفرد وقتی صبح روزنامه ها را میخواند با دیدن آگهی صفحه اول، میخکوب شد : “آلفرد نوبل، دلال مرگ و مخترع مرگ آور ترین سلاح بشری مرد !” آلفرد، خیلی ناراحت شد. با خود فکر کرد: آیا خوب است که من را پس از مرگ این گونه بشناسند؟ سریع وصیت نامهاش را آورد. جملههای بسیاری را خط زد و اصلاح کرد . پیشنهاد کرد ثروتش صرف جایزهای برای صلح و پیشرفتهای صلح آمیز شود امروزه نوبل را نه به نام دینامیت، بلکه به نام مبدع جایزه صلح نوبل، جایزههای فیزیک و شیمی نوبل و … میشناسیم. او امروز، هویت دیگری دارد . یک تصمیم، برای تغییر یک سرنوشت کافی است
گزیده: اگر خواهی از كسی دشنام نشنوی، كسی را دشنام مده. زرتشت
ساعت 5:54 به قلم مهرداد
|
|
|
|
|
|
|
|
|
چهارشنبه پانزدهم مهر 1388
- عاشق شدن - آنقدر بخندی که دلت درد بگیره - بعد از اینکه از مسافرت برگشتی، ببینی هزار تا نامه داری - برای مسافرت به یک جای خوشگل بری - به آهنگ مورد علاقت از رادیو گوش بدی - به رختخواب بری و به صدای بارش بارون گوش بدی - از حموم که اومدی بیرون ببینی حولهات گرمه - آخرین امتحانت رو پاس کنی - کسی که معمولا زیاد نمیبینیش، ولی دلت میخواد ببینیش بهت تلفن کنه - توی شلواری که تو سال گذشته ازش استفاده نمیکردی، پول پیدا کنی - برای خودت تو آینه شکلک در بیاری و بهش بخندی - تلفن نیمه شب داشته باشی که ساعتها هم طول بکشه - بدون دلیل بخندی - بطور تصادفی بشنوی که یک نفر داره از شما تعریف می کنه - از خواب پاشی و ببینی که چند ساعت دیگه هم می تونی بخوابی ! - آهنگی رو گوش کنی که شخص خاصی رو به یاد شما می یاره - عضو یک تیم باشی - از بالای تپه به غروب خورشید نگاه کنی - دوستای جدید پیدا کنی - لحظات خوبی رو با دوستانت سپری کنی - کسانی رو که دوستشون داری رو خوشحال ببینی - یه دوست قدیمی رو دوباره ببینید و ببینید که فرقی نکرده - عصر که شد کنار ساحل قدم بزنی - یکی رو داشته باشی که بدونید دوستت داره - یادت بیادکه دوستای احمقت چه کارهای احمقانهای کردند و بخندی و بخندی و ....... باز هم بخندی اینها بهترین لحظههای زندگی هستند، قدرشون روبدونیم زندگی یک مشکل نیست که باید حلش کرد بلکه یک هدیه است که باید ازش لذت برد مرجع: از ميان نامههاي سيدرضا گزيده:
Before software can be reusable, it first has to be usable Ralph Johnson
ساعت 10:28 به قلم مهرداد
|
|
|
|
|
|
|