الأحد، 20 ديسمبر، 2009

Top "10" Tips for creating a Good Code

Here we have a very very good and important notes and tips for writing a good and efficient code ...

Most of us have a problem with generating a good, efficient, readable, and well organized code and also in a good time rate ..

Here we have a very good tips I found and get it here for you all,
and for me too :)

-----

1.- DRY: Don’t repeat yourself.

When finding similar code in two or more places, we should abstract them into a new method and change the previous code fragments so they will now call the new method with the appropriate parameters.

DRY is maybe the most universal coding principle, I have never found a developer who would argue that repeating code is good, but, I have found developers that forget about this principle when coding unit tests.


2.- Write short methods.

There are three very good reasons for writing short methods.

  1. Your code will be easier to read.
  2. Your code will be easier to reuse (short methods are likely to produce loose coupling).
  3. Your code will be easier to test.

3.- Use good names for your classes, methods and variables.

There is nothing nicer than using some other developer code and not having to read its documentation because the names of the classes and the methods are telling us everything, so, make everyone’s life easier and take this approach, expend always a few seconds before naming any element in your code.


4.- Assign the right responsibility to each class.

One class, one responsibility, that will sound familiar to those who know about the SOLID principles, but not any responsibility, the right responsibility, so if we have the class Customer, we won’t assign to it the responsibility to create a new sales action, we will just assign it the responsibility to handle all the data related with a customer.


5.- Keep your code organized.

This organization is at two levels.

  • Physical organization: Whatever the structure you are using, packages, namespaces, folders… Organize your classes in such a way that is easy and intuitive to find where the code is stored.
  • Logical organization: Whatever belongs logically together should have access to each other members, but what belongs to a different logic structure has to access them by an interface. These logic groups are commonly implemented as layers, services…

6.- Create lots of unit tests.

The most tests you have, the better, they are our safety net for all the changes we will have to perform in the code in the future.


7.- Refactor often and sooner.

Software development is a continuous discovery process, in order to keep up to date with good code that matches the new/changing requirements is essential to refactor the code as we go. As this is a risky task there are 2 main preconditions to avoid entering new bugs into the system.

  1. Have lots of unit tests.
  2. Do small refactor steps at a time.

8.- Comments are evil.

Most of us were taught that comments are good, and actually it’s better to have a comment in an obscure piece of code than just having the code by itself, what this point means is that: even better than having a comment for an obscure piece of code is to not to have that code at all, just re-factor it until is a nice and readable piece of code.


9.- Code to an interface, not to an implementation.

This is a classic one, coding to an interface will free us from the implementation details, we just define a contract and rely on calling the defined operations on the contract, expecting that the actual implementation will be passed to our code or decided at runtime.


10.- Have code reviews.

We all make mistakes, and there’s nothing better than asking some other person to have a quick and informal review in our code to find them, in order to make the reviews, it’s better not to wait until the code is completed, it’s better to ask for reviews whenever some important part of the code has been completed or when a few days have passed from the previous review.


----
Hope you liked it ..
The source : http://www.makinggoodsoftware.com/2009/06/04/10-commandments-for-creating-good-code/


الثلاثاء، 15 ديسمبر، 2009

Tips to become a >> Good Software Developer

As I'm so much interested in Software Engineering and Development ..
those are some useful tips I read before and found it too much useful and valuable ...

------

Being a good developer is like being any other good professional, it’s all it’s about doing as much quality work as possible. There is a popular sentence that summarises it: “Do it. Do it right. Do it right now”.

1.- Have your own to do list for the day.

The best approach to complete complex activities is to break them down into simple activities. Do this every morning by breaking down the different activities you would like to complete for the day and assign them a schedule. This will help you to:

  • Have a better understanding of the activity.
  • Have a focused goal for the day
  • Improve your estimating skills. After a few days you will find that you can predict how much work you can do in a day.

2.- Do one thing at a time.

It’s been proven by different studies and published in different media (ie CNN) that it is more productive to be focus only on one task than to do multitasking.

Work in short batches of intense work of about 25 minutes with a 5-10 minutes rest. There are popular techniques like the pomodoro technique to help you manage the time. There are also tools to help you measure the time you spent on the different tasks, my favourite one is CoolTimer.

3.- Do it right.

There are two keys to know if something is done right

  1. To be proud of the solution; it is not just any solution, it is a good solution. It follows the principles of the “Pyramid of the software quality“.
  2. The solution passes at least one review. Ask one of your colleagues that you respect as a good developer to review your solution and for his sincere opinion.

4.- Don’t finish something until it’s completely done.

We all know that if there’s still a glass to wash, we cannot say that we have done the dishes, the same applies for painting a wall or driving to a destination but in software development we don’t do that, we say that we are done even when we haven’t completed all the unit tests or when we haven’t checked if the implementation is correct with the customer, that’s a typical behaviour from Hope Driven Development and that’s evil.

Something is only done when you are 100% sure that it won’t be necessary to work at all on that solution unless the requirements change.

5.- Better late than sorry BUT better sorry than never.

If it’s going to take you an extra day to complete the testing of some code, or to re-factor a class which is unreadable, do it, that’s an investment in time for the future, but if you are stuck with something and you are delaying the project too much, just find an easier solution. It may not be as elegant as the one you are implementing, but at least you will have a solution. Make sure to document it as future risk for the project and something that will probably need to be revisited.

الخميس، 3 ديسمبر، 2009

10 صفات لزوجــــــة ناجحـــــة

هذا هو باقي الموضوع و الجزء الثاني منه ...
و الموضوع كله بجزئيه منقول للإفاده و لأنه عجبني و حبيت أشارككم بيه
:)

زوجة ناجحة :
1- قبل الزواج وقبل الحب هي اولا امراة سوية ناضجة
- ومن فطرتها الانثوية الصافية الخالصة انها لا تتزوج الا من رجل تحبه
- وهي امرأة مثلما تعتز بانوثتها فهي تعي ايضا دورها الانثوي في الحياة ومع زوجها كزوجه وكأم

2- هي زوجة قادرة على احتواء الزوج بالحنان والاهتمام
- فهي بحسها الانثوي تدرك احتياجات الرجل
- فهي تعرف بفطرتها وبساطتها ان الرجل جزءاً كالطفل يحتاج الى أم
- وبه جزء ناضج واع منطقي يحتاج الى امرأة ناضجة عاشقه
- وبه جزء ابوي يحتاج فيه ان يؤدي دور الراعي المسؤول والقائد

- ولذا فهي تعطيه حنان الام وحب المرأة العاشقة وخضوع الابنة المتفهمة .

هي تعرف ان الرجل يتوقع الاهتمام من الزوجة , يتوقع التقدير ولذا فهي تعيش احلامه وانتصاراته وامجاده حتى وان كانت هي الشاهدة الوحيدة عليها ,تعيش حياته واهتماماته وعمله لحظة بلحظة . ولا تفارقه لحظة .
- الحب هو حياتها وزوجها هو محور حياتها , واسرتها هي مملكتها .
- هي زوجة ثرية العقل غنية الروح .

- تعيش حياة الفهم بفهم يدفعها الى الانفتاح على الكون.
فتفهم من امور الحياة واحوال الدنيا ما يجعلها مثقفة متفتحة فاهمة متعقلة عذبة الحديث , مقنعة المنطق , مؤثرة بافكارها وروحها .
ولذا فمن حبها لزوجها واحساسها بحب زوجها لها تدرك ان نفوذها وتأثيرها لا يكمن في جمالها الخارجي وزينة جسدها الشكلية , وانما يكمن في جمال عقلها ورونق روحها .
- هي الزوجة التي تملك روحا سمحه
- ونفسا طيبه
- وطباعا هادئة غير متسلطة

- غير عدوانية

- لا تستهويها ولا تزدهيها سلطة او قيادة او زعامة .

** ولأنها ارتبطت برجل تحبه وتثق به وتطمئن اليه فانها تسلم له قيادة مركب الحياة تساعده بعقلها وبجهدها تقف بجانبه وليس وراءه ولا ترضى ان تقف أمامه .

3- أن تكون غيرتها نابعة من حبها بهدف الحفاظ على حبها وزوجها الذي تثق به
- فهو جدير بالثقه
- ولأنها تثق بنفسها ايضا
- وفوق كل ذلك وقبل كل ذلك ثقتها بالحب الذي يربطها بزوجها
- غيرة عاقلة هادفة هادئة تسعد الرجل وفي نفس الوقت تحذره وتوقظه وتنبهه .

4- اخلاصها ووفاؤها ليس محلاً لنقاش او تأكيد
- والا اصبحت الامور كلها عبثية .
- من خلال سلوكها الاجتماعي المتوازن الراقي
- الذي يعكس حكمتها وتوازنها النفسي وثقتها بنفسها وعدم احتياجها لكلمات الاطراء وعبارات المديح وتلميحات الغزل .
- فهي ترفض ذلك باباء نابع من حسها الاخلاقي القوي ومن احترامها لذاتها واحترمها لكيانها كزوجة
- ولانها واعية وناضجة وذكية , فانها لا تستخدم سلاح الشك والغيرة لاذكاء مشاعر زوجها
- لانها تعرف ان هذا سلاح مدمر يقضي على الاحاسيس الطيبة لدى زوجها
- يقضي على احساسه بالامان .


5- أن تكون مبادئها , ايجابية , مشاركة , متعاونة,فعالة
- وذلك في ادارة شئون الأسره
- وان تعرف جيدا انها مصدر الحياة ومصدر الاستمرار ومصدر الاستقرار
- وانها هي القائد من الداخل , من الباطن
- وان مصدر قوتها هو الحب والاحتواء والفهم والوعي والذكاء .
- الذكاء الانثوي الفطري الذي يدرك بالحس الداخلي وباللاشعور انه لولا المرأة لما كانت الحياة , المرأة الزوجة , المرأة الفاضلة .


6- ان تستند حياتها كلها الى قاعدة اخلاقية
- تتمثل فيها كل القيم الرفيعة من صدق وامانة وتواضع وتسامح
- ينعكس في سلوكها العام وحياتها الزوجية


7- ان تكون تقية مؤمنة
- لا خير في امرأة لا تعرف ربها
- ولا اطمئنان مع زوجة لا ترعى حدود خالقها .



زوجة فاشلة :
- ان تكون عاجزة عن الحب .
- ان تدخل في منافسة مع الرجل .
- ان تكون عدائية متسلطة .
- ان تكون تافهة العقل .
- ان تفتقد لمشاعر الانتماء الى البيت ويصبح زوجها على هامش حياتها .
- ان تتمتع بالاستهتار والسطحية والمبالغة والاهتمام بالمظهر الذي يكشف عن جوهر ضحل .
- ان تكون قاعدتها الاخلاقية مثقوبة , فتهدر القيم وخاصة المتعلقة بالولاء والالتزام والاخلاص في الحياة الزوجية .
- ان تكون غير متوازنة نفسيا فتتذبذب انفعالاتها وتتأرجح ثقتها بنفسها ، فتندفع نحو حماقات ومهاترات لتأكيد الذات والدفاع عن النفس ضد اعتداءات وهمية وبذا تتسم حياتها بالعنف . والعداوة والشك وسوء الظن .
- ان تفتقد لمشاعر القدسية , قدسية الانسان , قدسية العلاقة الانسانية , الصداقة , الحب , الزواج , الامومة , وهذا يجعلها تتناول الامور الجادة تناولاً سهلاً رخيصاً يفتقد للبراءة والطهارة .
- ان تتمتع بالغرور والانانية والنرجسية.

الثلاثاء، 1 ديسمبر، 2009

10 صفات لزوج ناجــــــــــــح ... و زوجة ناجحـــــــــــــة

السلام عليكم

الموضوع ده أنا لقيته بالمصادفه وعجبني جدا
فا نقلته هنا للإفاده

هوا بس طويل حبه
لذلك
قررت أقسمه علي جزئين و هانشر الجزئين ورا بعض
:)

الجزء الأول >>

زوج ناجــــــــــــــح :
-----------------
1_ ان ينجح في ان يبث مشاعر الامان الحقيقية لدى زوجته الامنة .

· ان اهم ما تحتاج اليه المرأة هو مشاعر الأمان والطمأنينة واذا فقدتها اضطربت , والرجل الحقيقي هو القادر على منحها هذه المشاعر

· والمصدر الاول لأمان المرأة هو حب الرجل لها الحب الحقيقي فاذا شعرت بحب زوجها اطمأنت

· والزوج الذي تكون زوجته هي حبيبته وحبيبته هي زوجته و يرى الزواج كعلاقة مقدسة , علاقة ابدية خالدة , تطمئن معه المرأة في حياتها.

2- ان يكون مصدر قوته الحقيقية هو صدقه الرجل الصادق هو رجل قوي . صادق مع نفسه , صادق مع الناس , صادق مع زوجته . فالصادق هو انسان سام ورفيع

· ولابد ان يكون شجاعاً

· وهذا يعني ايضا ثقته بنفسه

· وتلك مظاهر الجمال الحقيقية التي تشد المرأة الى الرجل

· والمرأة تسلم لرجل شجاع .
3- ان يكون قادراً على تحمل المسئولية ,

مسئولية الحياة 0

· مسئوليته عن نفسه0

· وعن زوجته واسرته0

· ومسئوليته كأنسان 0

· والمسئولية تنبثق من الارادة الواعية الارادة الحرة

· وهي تعني وعيه بدوره وقيمته واهميته .

· تعني احساسه بذاته وبنضجه

· والرجل الحقيقي هو الذي لا يساق الى تحمل مسئولياته ولا يتهرب منها

· وانما يتجه اليها بصدق وهمة وايمان وفهم وحب ويسعد بما يقدمه للاخرين من عطاء 0

· سواء كان عطاء المسئولية او عطاء حراً نابعاً من حسه الانساني النبيل .


4- الزوج الناجح هو رجل ناجح في عمله ,

· يعتز بعمله ويتقنه ويقبل عليه بحب 0

· ويحاول ان يبدع فيه ويطور نفسه ويؤكد ذاته ويحقق طموحاته .

· احد جوانب احساسه بذاته هو نجاحه في عمله 0

· وكذلك احد جوانب فخره وثقته بنفسه واعتزازه بذاته 0

· وهذا يعني جديته وشعوره العميق بالمسؤلية .

· وثمة علاقة وثيقة تربط بين عمل الرجل وحبه وحياته الزوجية 0

· ان نجاحه في عمله يثري حياته الزوجية وتوفيقه في حياته الزوجية يثري عمله .

· انها علاقة تبادلية مباشرة تحفظ توازنه النفسي وتحفظ للزوجة توازنها النفسي وتحفظ للحياة الزوجية استقرارها وتكون احد دعائم نجاحها

3-وأن يكون ايضاً ناجحاً اجتماعياً 0

4- أن يكون قادراً على التأثير الاجتماعي0
5- أن يكون بناؤه الاخلاقي سليماً

- يعكسه ضمير نظيف0

- وينبع من نفس طيبة خيرة هي المصدر للقيم الاخلاقية الانسانية العظيمة .

- فهو شريف 0

- أمين0

- عطوف 0

- متسامح 0

- نبيل0

- متواضع 0

- وينعكس هذا على حياته العامة وحياته الخاصة 0

- فالانسان لا يتجزأ والاخلاق لا تتجزأ فمن كان غير امين في حياته العامة فهو غير امين بشكل او باخر في حياته الخاصة .

- وهو بنفس الطيبة الخيرة يبعث اقصى درجات الطمأنينة في نفس زوجته .


6- ان يتمتع بالثبات الانفعالي

- فلا يندفع غاضباً ثائراً لأبسط الامور 0

- ويفقد السيطرة على اعصابه وسلوكه

- وينهار ويصدر عنه كلام غير منطقي والفاظ سيئة .

- وان يكون صبوراً حكيماً منطقياً مقدراً عاذراً .

- وان يتجاوب انفعاليا حسب مقتضيات الموقف 0

- اي ان يكون انفعاله مناسبا للموقف

- وان يكون انفعالا بناء لمعالجة الموقف .

- وان يكون قادرا على السيطرة على هذه الانفعالات اذا اقتضى الموقف .

وان يكون راقيا ايضا في غضبه فلا يلجأ الى العنف البدني او اللفظي للسخرية والتهكم والتحقير والكلمات البذيئة .
**ان الزوجة تفقد ادراكها الدقيق لحدوده كرجل اذا رأته في هذه الصورة المتهاوية المنهارة , وخاصة اذا كانت تقف هي قبالته اي ان الموقف يتناولها هي شخصيا .


7- الرجولة الحقة هي التي تجعل المراة تشعر بانوثتها الحقة

- والانوثة الحقة لا تظهر في ظل رجولة مهزوزة او منقوصة .

- والمرأة لا تشعر بذاتها الحقيقية - ذاتها الانثوية - الا مع رجل حقيقي 0

- أي قوته وشجاعته وقدرته على الاحتواء0

- وغيرته الموضوعية النابعة من حبه ومن دوره في المحافظة على زوجته 0

**لا من مشاعر الضعف والهوان وحب الامتلاك والتعلق المرضي والتي تنبري في صورة "غيرة " زائدة هي اقرب الى الشك ولا تعني الا انهيارا رجوليا داخليا وعدم الثقة بالنفس .


8- ان يحافظ على التوازن بين الرومانسية والواقعية وبين الخيال والحقيقة

- الرومانسية تحفظ له شاعريته ورقته التي تحتاجها المراة وشغفه العاطفي الذي ترتوي منه المرأة .

- وفي الوقت نفسه واقعيته تتيح له الادراك السليم للواقع والحكم الموضوعي على الامور والقيادة الواعية المستبصرة بمقتضيات الحياة .
**المرأة تطمئن للرجل المتوازن وتفتن بالرجل المتكامل وتتعلق بالرجل الحي المتحرك النشط القوي الشجاع الحالم الرقيق ،مزيج من الرجولة الحقة .


9- ان يكون حازما , عادلا , راعيا , قائدا 0

- المرأة السوية تسلم القيادة لزوجها 0

- والقائد الناجح لابد ان يكون حازما حازما بلا قسوة وبلا عنف .

- الضعيف المتهاون هو الذي تنتابه حالات العنف والثورة وهو الذي يقسو قسوة زائدة.
- وحزم الرجل مصدره عقله ومن خلال اساليب عقلية , وهو المنطق والثبات , الحجة والاقناع .

- والحزم لا يعني ان يكون مرهوبا بل يكون عطوفا 0

- ففي العطف حزم 0

- وفي المنطق حزم 0

- وفي عدم التنازل والتهاون في الامور المهمة حزم .

- وفي التجاوز عن الصغائر حزم 0

- وفي التسامح عن اخطاء غير مقصودة حزم .
**والراعي لكي يستمر دوره لابد ان يكون عادلا , والعدل قيمته تعني السمو والحكمة , العادل هو انسان سام حكيم0



10- ان يكون تقيا مؤمنا

- لا خير في رجل لا يعرف ربه

- ولا اطمئنان مع زوج لا يراعي حدود خالقه .



-------------------------------

زوج فاشـــــل :

----------------------
- هو رجل لا يقدس الزواج
- هو رجل فاشل بوجه عام في امور كثيرة من حياته , عمله , علاقاته الاجتماعية .
- هورجل انهزامي انسحابي0

- ينزلق بسرعة في مهاوي اليأس 0

- يفتقد روح المرح .

- ضعيف الهمة 0

- قليل الحركة .
- سريع الانفعال والغضب0

- فاقد السيطرة0

- ينهار ازاء المواقف الصعبة .
- كاذب وكذبه لضعفه , وعدم ثقته بنفسه .
- مفتقد لروح القيادة

- متهاون غير حازم0

- ويقبل سيطرة الغير عليه0
- مفتقد لمشاعر الخير والحس الانساني : متعال , مغرور , نرجسي , عدواني , قاس .
- ينزلق أخلاقيا بسهولة 0

- غير أمين .
- لا يحرك مشاعر الانوثة عند امرأته

- تفتقد معه الاحساس بذاتها الحقة 0

- وتفتقد معه مشاعر الامان .
- يسيطر عليه الشك0

- غيرته مرضية نابعة من حبه للامتلاك وضعفه الداخلي .