الثلاثاء، 13 نوفمبر 2018

[نقاش] كيف تتعامل مع مشكلة Legacy Code لمشروع برمجى كبير

السلام عليكم

أكثر شئ يواجه الـ Developers لما ينتقل لشركة جديدة هى مشكلة الكود القديم والمكتوب من سنوات ولم يفكر أن يقترب منه أحد Legacy code

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

إذاً الحل المناسب هو أن تفهم كيف تتعامل مع Legacy code وكيف يحدث ولماذا الناس تعانى منه, وأن تعرف اغلب ما يقوم به المبرمجين في هذا الموقف.

أكتب هذا بصدد النقاش حول هذا الموقف فكيف تتصرف مع كود ليس له كود test لا تعرف إن قمت بتغير شئ ما انه لن يؤثر على مكان أخر أو لا يتسبب فى افساد المشروع نفسه, كما انى إذا أحببت أن أضيف الـ unit test لعمل refactor للكود ما الخطوات التى يجب عليا اتباعها حتى لا ينهار المشروع بالكلية

إذا كان قابلك شئ مثل هذا انقل لى تجربتك, وبماذا تنصحنى؟؟!



from حسوب I/O - الأكثر شيوعاً https://ift.tt/2FkFF6m

دكتور هشام سلام: قصة نجاح من أوكسفورد إلى اكتشاف المنصوراصورس!



from حسوب I/O - الأكثر شيوعاً https://ift.tt/2OGS58b

مهندس أمريكي يعرض تصميمه لكمبيوتر صنعه في التسعينات معتمدا على شرائح FPGA فقط

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

https://youtu.be/C8txvmXUIJQ

في بداية مشاهدتي للفيديو كنت اضنه يعرض كمبيوتر قديم كان شاريه من شركة ما , لكن الصدمة كانت عندما شاهدت يحمل لوحة غريبة بها شريحتي FPGA و عدة دوائر خاصة مجمعهم مع بعض بأسلاك :)

https://suar.me/w1P9p

من مدة ليست قليلة كنت اقراء عن برمجة شرائح و لوحات FPGA و عرفت ان اللوحة الناتجة قادرة على القيام بعمل اسرع من المعالج العادي ب 50 مرة في بعض الاحيان (لانها تقوم بالمعالجة بشكل متوزي parallelized computing ) .

كنت افكر بفكرة عمل جهاز ينفد عمل محدد (مثلا نسخ عدة اقلاص CD/DVD في نفس الوقت) بدون الحاجة الى معالج او نظام تشغيل (إما ينسخ من سيدي آخر كمصدر او حتى يقراء ملف موجود بالفلاش ) ويقوم بعمله عبر الازار فقط (مثل المصانع القديمة) ,

صراحة هذه كانت فكرة الخاص عن الكمبيوتر حتى قبل ادخل الجامعة و اقراء اكثر عليه , لماذا في دولنا لا يقوم احد بصناعة مثل هذا الكمبيوتر ! فالواح FPGA اصبح رخيصة جدا و بسرعات تعتبر خرافية مقارنة بما كانت عليه بالسابق .



from حسوب I/O - الأكثر شيوعاً https://ift.tt/2Ptvrp6

مشاركة مكتبة Simple 2 way PHP Configuration، مع قصة خلفية عن مشروعي

https://suar.me/gZBl1

تم نشر هذا الموضوع في dev.to

مرحبا جميعا،

يسعدني أن أقدم لكم أول مشروع open source جدي وعصري لـي، وهو مكتبة لإنشاء إعدادات في ال php ثنائية الإتجاه، أي أعدادات قابلة للقرائة و الكتابة. هذه المكتبة مفيدة في المشاريع او التطبيقات التي تحتاج نظام إعدادات بدون إستعمال قواعد بيانات.

رابط المكتبة على ال github

https://ift.tt/2PTnKIa

مثال على الإستعمال :

use MazenTouati\Simple2wayConfig\S2WConfigFactory;

$config = S2WConfigFactory::create( __DIR__ . '/demo' );

// Get a value from the config
$old_host = $config->get('database.drivers.mysql.host');

// Change the value at the run-time
$config->set('database.drivers.mysql.host', '127.0.0.1');

// Sync the changes with the source file
$config->sync('database');

اذا أعجبك المشروع سيكون من الرائع وضع نجمة لان ذلك سوف يساعدني كثيرا، شكرا. كذلك باب المشاركة و الإقتراحات مفتوح.

قصة خلفية عن المشروع

بدأت القصة عندما قررت في يوم ما من رحلتي في عالم برمجة الويب " full-stack " ان أشارك أصبح جزء من مجتمع المشاريع مفتوحة المصدر، لعدة أسباب اهمها تطوير مهاراتي. خاصة في جزء واجة الواب " front-end " حيث انه يتطور بسرعة كبيرة كما انه ملئ بالمكتبات و أطر العمل المعقدة ( over-engineered ). بالتالي، فقد إنطلقت في بناء مكتبة أدوات لإدارة قواعد البيانات شبيه بال ( phpmyadmin )، حيث ستكون موجه للمشاريع الصغيرة و المتوسطة نسبيا. فعلا، كان خيارا صائبا أن أنطلق في بناء هذا المشروع لأني بالفعل رغم اني لم انتهي منه نهائيا الا اني تعلمت الكثير. بدايا لقد وضعت نفسي اما ثلاثة خيارات react, vue & angular أي منه سأختار. تعمقت كثيرا في مقارنتهم ايهم الأحسن او المناسب لمشروعي، انتهى الأمر لرفضهم الثلاثة. ومن ثم قمت بصنع مكتبات او سكريبتات صغيرة لمعالجة امور صغيرة لها علاقة بالمشروع كالـ data binding و القولبة... لا أعتقد اني قمت باعادة اختراع العجلة هنا، لأنه وكما ذكرت سابقا الكثير من الحلول مبالغ في تعقيدها وتم انشاءها لتحل جميع المشاكل و تكون مناسبة لجميع الوضعيات. وضع الكثير من الأكواد الغير مستعملة و المكتبات الثقيلة في مشروعي لم يكن وارد، لانه من أولياتي كانت المردودية و السرعة. فأنا إنسان بسيط و براغماتي، أريد فقط ما يسد حاجتي و حاجة مشروعي، لا أشعر براحة كبيرة بينما يوجد الكثير من الأكواد الغير مستعملة و بعض المناطق الغير مكتشفة في مكتبة ما. فقط أريد استعمال مكتبات موجه لغرض واحد، فقط.

بذكر هذا، فهو يشير مرة اخرى لموضوعنا اليوم، لقد وصلت الى نقطة في مشروعي حيث كنت احتاج الى جعل إعدادات قاعدة البيانات قابلة للكتابة و القرائة. بحثت كثيرا عن مكتبات بسيطة لهذا الغرض ولكني لم أجد اي شئ مناسب لي. سوف اخبركم بالسناريو الذي كنت فيه: كنت بصدد بناء console يقوم بتطبيق الأوامر سطر بسطر في مرحلة ما اذا قام المستعمل بكتابة الأمر use _database فاني بحاجة الى اخذ ذلك الإسم و تحديث اسم قاعدة البينات في ملف الإعدادات ثم ارجاء رسالة في الconsole تقول " تم تغيير قاعدة البيانات بنجاح !" ثم يقول المستعمل بكتابة أوامر SQL اخرى ويتم تشغيلها في قاعدة البيانات الجديدة. كما انها ستبقى موجودة في إستعمال مستقبلية لل console. من البديهي انه لم يكن لدي الخيار لإستعمال قاعدة البيانات لانشاء اعدادات متغيرة.

لحل المشكلة قمت بعمل نسخة ( fork ) من مكتبة اخرى و اظفت إليها خاصية تحديث الملفات، ثم استعملتها عن طريق composer وذلك حتى استطيع الإنتهاء من انشاء المشروع. لكني في النهاية لم اكن مرتاح كثيرا مع ذلك الحل، بعد الإنتهاء من مشروع ال console قمتُ بإنشاء هذه المكتبة و نشرتها في ال packagist ثما استعملتها في ال console.

حاليا ال console جاهز للنشر ولكني بصدد تحضير موقع رسمي له، عند الانتهاء من ذلك سوف انشره وانشر معه موضوع فيه تفاصيل اكثر عن قصتي مع هذا المشروع.

هذا الأشياء التي تعلمتها ( الأشياء التي تذكرتها خلال كتابتي للموضوع ) : بعضها سمعتُ به من قبل وجربته لأول مرة، بعضها لم اعرفها في الماضي واكتشفتها ثم استعملتها في هذا المشروع، وبعضها كنت اعرفها و استعملها ولكني طورت في معرفتي لها خلال هذا المشروع

  • Javascript: React, Vue, Reveal Pattern, Sub-pub, Data binding, ES2016, Gulp, More VanillaJS, HTML Tag's templating ( usings custom attribute ) ...

  • CSS: SMACSS, More flexbox, More composer

  • PHP: Unit Testing, Continuous Integration, Slim Micro Framework, Code-sniffer

  • Other: Git, Vim, Lossless coupled components, Modular Programming in general, more command line...

مرة اخرة أريد فيها أن أعبر عن فرحتي و رضائي على ما مررتُ به خلال هذا المشروع. فقط شئ واحد أريد أن اقوله لكل قارئ " أنطلق في إنشاء مشاريعك مفتوحة المصدر" فعلا تجربة مميزة.

practice makes perfect

يسعدني سماع أرائكم، شكرا.

سوف أعود لأصلاح الأخطاء اللغوية لاني ترجمة افكاري من الموضوع الأصلي بالأنجليزية الى العربية، اسف ان كان هناك تعبير او لفظ ركيك.

رابط الموضوع الأصلي :

https://ift.tt/2DijIlW



from حسوب I/O - الأكثر شيوعاً https://ift.tt/2PZURde

قصة مبرمج يساعد الناس يتحول الى وحش ومجرم!

المبرمج Carl Herold قصته ملهمة ومروعة في آن واحد، يتجلى فيها مدى التناقض الصارخ الذي يمكن أن يكون عليه الإنسان وحمله لأجود أنواع الخير وأبشع أنوع الشر في نفس الوقت.

منذ حوالي 9 سنوات ظهر على الإنترنت وموقع اليوتيوب مبرمج بأسم Carl Herold ثم بدأ يرفع دروس تعليمية لمختلف لغات البرمجة وكان غزير الإنتاج والنشاط، ثم بدأ يتفرع لمواقع أخرى مثل reddit وملتقيات المبرمجين الكبرى ويجني عشرات الآلاف من المتابعين والتلاميذ، ولم يكن فقط مبرمجًا فائق البراعة والإقتدار وإنما كان شخصية في غاية الحميمية والدعم والقرب من جميع أتباعه وأصدقائه، كان سخيًا جدًا في وقته وطاقته ولم يبخل على أحد بأي معلومات أو مساعدة من أي نوع بل كان كريم فوق العادة لدرجة أنه في بعض الأحيان كان يعطي دروسًا مجانية عبر الSkype لناس لا يعرفهم، وشكره المئات على جهوده الجبارة التي ساعدتهم على إحتراف البرمجة وتغيير مسار حياتهم تمامًا.

ثم فجأة وبدون سابق إنذار عام 2013 يغيب Carl تمامًا عن اليوتيوب وجميع المنتديات لفترة، على غير عادته.. ثم في شهر نوفمبر من نفس العام تأتي الصدمة المفجعة المدوية لجميع أحبابه ومتابعيه، كارل مقبوض عليه مع شريكه، والتهمة؟ حبس وإغتصاب وتعذيب ابنه الطفل لسنوات، كان هو وشريكه يجبروا ابن كارل الصغير على القيام بأفعال جنسية وينشروا الفيديوهات على الإنترنت، والطفل كان مشوه ومتلوف نفسيًا وعقليًا من بشاعة ما كان يحدث معه لدرجة أنه تم إرساله إلى مصحة نفسية ولم يتعافى مما حدث له.

في البداية، كارل وشريكه ينكرون جميع التهم، ولكن أدلة إدانتهم تتكدس ضدهم بما لا يدع مجالًا لأي شك وفي النهاية ينتحر كارل شنقــًا لنفسه في سجنه، ويحصل شريكه على حكم سجن لمدة 36 عام، ويترك كارل تلاميذه في حالة إنكار وصدمة مدوية وحيرة شديدة من أمرهم لا يعرفون هل يشكروه أم يلعنوه!

https://suar.me/noPJm

منقول :

بعض المصادر

https://ift.tt/2FtScEy

موقع : reddit

https://ift.tt/2qIKuwf

قناته في اليوتيوب :

https://www.youtube.com/channel/UCbNxlZZVmfP8n84ag-rGpMg/



from حسوب I/O - الأكثر شيوعاً https://ift.tt/2FtSQSu

حياتي بعد عام من الإبتعاد عن العمل الحر!!

أسعد اللَّه أوقاتكم دائمًا؛

أوشك العام على الإنتهاء، وسنكتب فصلًا جديدًا فى حياتنا بحلول العام الجديد!!

إليكم ما فعلته هذا العام، بعد فترة من الإجتهاد والدراسة والتطوير والبُعد عن منصات العمل الحر كلها.

1- أصبحت مترجمًا بـ 3 شركـات عالمية واحدة منهم Netflix

2- أسست شركتي الخاصة "CUBE" والتي تقدم خدمات الترجمة والبرمجة

3- فى طريقي لإطلاق أول مبادرة مصرية عربية لدعم المترجمين والمبرمجين، والتى تهدف لتوعية كلًا من طلبة اللغات والحاسبات بسوق العمل، والمهارات الواجب تعلمها، وكيفية تطوير الذات فى تلك المجالات. ستوفر لهم المبادرة أيضًا مجموعة من الدورات التدريبية المجانية تمامًا _لكل مجال_ على أيدي خبراء المجال، مع توفير فرص عمل بعد الدراسة للمجتهدين. حصلنا حتي الآن على دعمم 23 شركة مصرية وعربية وفي طريقنا لحلم الـ 50 شركة قريبًا.

4- فى طريقي للحصول على اعتماد الأيزو للمترجمين

وأنت، ماذا فعلت هذا العام؟؟



from حسوب I/O - الأكثر شيوعاً https://ift.tt/2QEVI0f

فكرة موقع دليل شبكات التواصل الاجتماعي

ما رأيكم بفكرة موقع يحتوي على دليل لقروبات وصفحات وحسابات مواقع التواصل من فيس بوك وتويتر وانستغرام وسناب شات

مثال :

زراعة == قروبات . صفحات . حسابات شخصية مهتمين بالزراعة

جامعة الملك عبد العزيز == حسابات الاشخاص الذين يدرسون في هذه الجامعه مثلا

مطاعم == صفحات مطاعم الدولة او المنطقة الفلانية

اسم منطقة معين == حسابات الاشخاص الذين يسكنون هذه المنطقة

شركة تنظيف == صفحات الشركات المختصه بالتنظيف بالمنطقة المعينه

مولات = صفحات مولات المنطقة المعينه او دولة معينه

هل هذا الموقع مخالف من ناحية الارشفة كقوقل كونه المحتوى قصير وهل سوف يلاقي نجاح واقبال وهل يوجد مشاكل في هذه الفكرة ؟؟

انتظر جميع الاراء



from حسوب I/O - الأكثر شيوعاً https://ift.tt/2DB3kOo