<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: Ahmed Atef</title>
    <description>The latest articles on DEV Community by Ahmed Atef (@ahmedatefmohamed).</description>
    <link>https://dev.to/ahmedatefmohamed</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F669376%2Fc07522eb-e6cc-4609-91ae-07cc5c542dc8.jpg</url>
      <title>DEV Community: Ahmed Atef</title>
      <link>https://dev.to/ahmedatefmohamed</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/ahmedatefmohamed"/>
    <language>en</language>
    <item>
      <title>The DRY Principle</title>
      <dc:creator>Ahmed Atef</dc:creator>
      <pubDate>Tue, 29 Mar 2022 10:04:52 +0000</pubDate>
      <link>https://dev.to/ahmedatefmohamed/the-dry-principle-2do8</link>
      <guid>https://dev.to/ahmedatefmohamed/the-dry-principle-2do8</guid>
      <description>&lt;p&gt;عندما نفكر في ممارسة أفضل الحلول البرمجية أثناء برمجة الأكواد ، فعليك بشكل أساسي أن تتذكر هذا المبدأ&lt;br&gt;
&lt;code&gt;(Don’t Repeat Yourself) 🔄&lt;/code&gt;&lt;br&gt;
والذي يُلخص التعبير التالي&lt;br&gt;
“Every piece of knowledge must have a single, unambiguous, authoritative representation within a system.”&lt;/p&gt;

&lt;p&gt;إذاً يستهدف هذا المبدأ إلى تقليل بل تجنب التكرارات الزائدة عن الكود بلافائدة ، فلنتعجب عندما نقضي المزيد من الوقت في تكرار الكود وفي الحقيقة إن الغرض من معظم التطبيقات هو إتوماتيكية المهام والوظائف مواضع التكرار في السيستم&lt;/p&gt;

&lt;h2&gt;
  
  
  📢 فما الحل ؟؟؟
&lt;/h2&gt;

&lt;p&gt;يكمُن الحل في استبدال الدوال أو الوظائف المكررة بأخرى مُجردة أو بتجميعها تحت مظلة وظيفة واحدة فردية ومن ثم إستدعائها في أي مكان يتطلب تنفيذ مهام هذة الدالة.&lt;br&gt;
ويتحقق هذا من خلال الإقتراحات التالية:&lt;br&gt;
✅Creating an API reference guide from comments&lt;br&gt;
✅Automatically detecting unit tests through an annotation or naming convention&lt;br&gt;
✅Generating both PDF and HTML documentation from a single markup source&lt;br&gt;
✅Deriving object classes from a database schema&lt;/p&gt;

&lt;p&gt;When following the coding best practices, remember the DRY Principle. DRY stands for Don’t Repeat Yourself, and the DRY Principle states that “Every piece of knowledge must have a single, unambiguous, authoritative representation within a system.” This is also sometimes known as DIE: Duplication Is Evil.&lt;/p&gt;

&lt;p&gt;The Principle aims at reducing repetition and redundancies within the software engineering process. The purpose for most applications is to automate repetitive tasks, so why spend time repeating code?&lt;/p&gt;

&lt;p&gt;This is achieved by replacing repetitions with abstractions or by grouping code into functions and Keeping a definitive version of your code in a single place, and then let this version drive all other uses. You can do this by:&lt;/p&gt;

&lt;p&gt;✅Creating an API reference guide from comments&lt;br&gt;
✅Automatically detecting unit tests through an annotation or naming convention&lt;br&gt;
✅Generating both PDF and HTML documentation from a single markup source&lt;br&gt;
✅Deriving object classes from a database schema&lt;/p&gt;

&lt;p&gt;When you follow the DRY principle, you are saving yourself time and energy and following one of the most important coding best practices.&lt;/p&gt;

</description>
      <category>dryprinciple</category>
      <category>bestpractice</category>
      <category>softwareengineering</category>
    </item>
    <item>
      <title>The YAGNI Principle</title>
      <dc:creator>Ahmed Atef</dc:creator>
      <pubDate>Tue, 29 Mar 2022 10:00:48 +0000</pubDate>
      <link>https://dev.to/ahmedatefmohamed/the-yagni-principle-1g3b</link>
      <guid>https://dev.to/ahmedatefmohamed/the-yagni-principle-1g3b</guid>
      <description>&lt;p&gt;أحد المبادئ الهامة وإختصار آخر قد يكون متعارف عليه بين مهندسي البرمجيات ولكن البعض لايجيدون تطبيق المبدأ&lt;/p&gt;

&lt;p&gt;&lt;code&gt;You Aren’t Gonna Need It⚠️&lt;/code&gt;–&lt;br&gt;
على الأقل في مراحل التطوير المبكرة في التطبيقات ، لأننا كمطورون نتطلع لمستقبل المشروع اللي بنشتغل عليه في الوقت الحالي ، فبالتالي قد يخطأ البعض في إضافة المزيد من ال Extra Features الغير ضرورية للمشروع واللي يظن البعض انها ضرورية في الوقت الحالي ولكن الحقيقة غير ضرورية على المدى البعيد للمشروع وقد تكون ضرورية في مراحل متقدمة في المشروع.&lt;br&gt;
هذا المبدأ يندرج تحت مصطلح &lt;strong&gt;extreme programming (XP)&lt;/strong&gt; والذي يشير إلى تنفيذ خطوات بسيطة التي تعمل وتُحقق الهدف منها ، وينتج عن تطبيق هذا المبدأ&lt;br&gt;
✅ توفير المزيد من الوقت المُهدر في إضافة خطوات غير ضرورية&lt;br&gt;
✅ المُضي في إستكمال المشروع بشكل كُفئ.&lt;br&gt;
“Always implement things when you actually need them, never when you just foresee that you need them.”&lt;/p&gt;

&lt;p&gt;Another acronym that’s popular among software engineers, YAGNI means “You Aren’t Gonna Need It”. This principle focuses on eliminating any unnecessary coding and works in tandem with the KISS principle.&lt;/p&gt;

&lt;p&gt;– Sometimes, as developers, we try to think way ahead, into the future of the project, coding some extra features “just in case we need them” or thinking“we will eventually need them”. Just one word: Wrong! You didn’t need it, you don’t need it and in most of the cases… “You Aren’t Gonna Need It”.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;YAGNI&lt;/strong&gt; is a principle behind the extreme programming (XP) practice of “Do the Simplest Thing That Could Possibly Work”. Even when this principle is part of XP, it is applicable in all kinds of methodologies and processes of development. By implementing the ideals of “You Aren’t Gonna Need It” programming, you will save yourself time and be able to move forward with projects efficiently.&lt;/p&gt;

</description>
      <category>yagniprinciple</category>
      <category>bestpractice</category>
      <category>softwareengineering</category>
    </item>
    <item>
      <title>The KISS Principle</title>
      <dc:creator>Ahmed Atef</dc:creator>
      <pubDate>Tue, 29 Mar 2022 09:46:48 +0000</pubDate>
      <link>https://dev.to/ahmedatefmohamed/the-kiss-principle-2ae</link>
      <guid>https://dev.to/ahmedatefmohamed/the-kiss-principle-2ae</guid>
      <description>&lt;p&gt;وهو عبارة عن إختصار تم ملاحظته من قبل البحرية الأمريكية سنة 1960&lt;br&gt;
&lt;code&gt;Keep It Simple, Silly😀&lt;/code&gt;&lt;br&gt;
واللي بيمثل بشكل كبير مايقوم به مجتمع مهندسي البرمجيات في عملهم ،&lt;br&gt;
الفكرة ياعزيزي القارئ من وراء هذا المبدأ هو أن نحافظ على كتابة محتوى الكود البرمجي بمستوى دقيق قدر المستطاع.&lt;br&gt;
وبتطبيق هذا المبدأ سينتج كود ذو معنى مفهوم وواضح ومُركز خالياً من التكرارات الغير لازمة ، وبكدا نقدر نتتبع الكود الخاص بنا بشكل سليم بدون إهدار للوقت وبذل مجهود كبير .&lt;/p&gt;

&lt;p&gt;The popular acronym KISS, noted by the U.S. Navy in 1960, is extremely relevant in the software engineering community. It stands for “Keep It Simple, Silly” (some variations replace “Silly” with “Stupid,” but you get the idea). Whatever the variations, the underlying idea remains the same.&lt;/p&gt;

&lt;p&gt;The keyword here is “Simple,” and the idea is to keep your code as concise as possible. In the context of coding, this means making your code meaningful, to-the-point, and avoiding unnecessary engineering work.&lt;/p&gt;

&lt;p&gt;The KISS Principle ensures that your code has high maintainability. You should be able to go back and debug it easily, without wasting time and effort.&lt;/p&gt;

</description>
      <category>programming</category>
      <category>kissprinciple</category>
      <category>softwareengineering</category>
    </item>
  </channel>
</rss>
