تصميم البرمجيات مقابل المعمارية
الدرس 5 من 38 · الأساسيات · 4 دقيقة و47 ثانية
الفيديو الأصلي باللغة الإنجليزية. إذا تعذّر تشغيله هنا، شاهده على موقع المؤلف. التفريغ النصي العربي الكامل أدناه.
الموارد
التفريغ النصي
[00:03] المعمارية مقابل تصميم البرمجيات. هل هناك فرق فعلي بين هذين المصطلحين أم أنهما متشابهان إلى حد كبير؟ حسنا، هناك بالتأكيد الكثير من التداخل، وأعتقد أنه من الجيد استخدام المصطلحات بالتبادل. ولكن هناك فرق واحد، وأعتقد أنه من المهم أن نتحدث عن ذلك.
[00:18] لذلك عندما نفكر في العلاقة بين المعمارية والتصميم، يمكننا أيضا أن نرى هذا النوع من الطيف حيث نهاية المعمارية من الطيف، لدينا الأشياء التي هي حول هيكل النظام. وفي نهاية التصميم، لدينا أشياء تتعلق أكثر بالشيفرة، حول أنماط التصميم التي نستخدمها، حول القرارات الكبيرة التي نتخذها عند تسمية الوظائف أو كيفية تنظيم الشيفرة وما إلى ذلك.
[00:44] ولمعرفة أين يقع قرار معين في هذا الطيف، فإنه يساعد على تحليله من خلال عدد قليل من العدسات المختلفة. واحد منهم هو مدى صعوبة أو مدى سهولة تغيير القرار. كلما كان التغيير أصعب، كلما كانت المعمارية أكثر في الطبيعة. واحد آخر هو مدى الاستراتيجية أو مدى تكتيكية القرار. القرارات المعمارية عادة ما تنطوي على فرق متعددة. لديهم آثار على المدى الطويل، أو أنها تتطلب منا فقط التفكير بشكل استراتيجي أكثر حول كيفية اتخاذ هذا القرار. في حين أن قرارات التصميم تدور حول العمليات اليومية أو حول كيفية عملنا مع فرقنا الفورية.
[01:22] وأيضا، قضايا المعمارية هي على مستوى عال. وهذا يتطلب المزيد من السياق. أنها تتطلب منا أن نعرف كيف أجزاء أخرى من التطبيق، أو كيف تعمل جميع التطبيقات الأخرى، في حين أن قرارات التصميم هي أكثر على مستوى الشيفرة. لذلك نحن لسنا بحاجة إلى معرفة. عادة ما تكون مقيدة بقاعدة شيفرة معينة.
[01:40] لذلك دعونا نرى بعض الأمثلة على كيفية وضع قرار معين في هذا الطيف. لذلك دعنا نقول أننا نحاول اتخاذ قرار بشأن أسلوب معماريتنا المعمارية، سواء كنا نريد استخدام واجهات صغيرة أو SPA أحادية البنية أو هندسة الجزر أو أيا كان ما نحاول تحديده. وهذا يقع بالتأكيد في الجانب المعماري من الطيف لأنه يتحقق إلى حد كبير من جميع صناديقنا. في بعض الأحيان يكون من الصعب التغيير. ليس من السهل التغيير من واجهة صغيرة إلى أحادية أو العكس بالعكس. هذا شيء من الصعب بالتأكيد تغييره.
[02:15] إنها استراتيجية لأنها تنطوي إلى حد كبير على الفريق بأكمله وربما فرق أخرى خارج المنظمة، ولها آثار طويلة الأجل. وهو قرار رفيع المستوى لأنه يتطلب مني معرفة المزيد، ليس فقط كيف يعمل فريقي، ولكن أيضًا أشياء أخرى مثل مستوى الأداء الذي أحاول تحقيقه، أو ماذا عن موثوقيتها. هل تعرف ما هي سمات الجودة التي أهتم بها؟
[02:39] مثال آخر هو القرار الذي رأيناه في وقت سابق حول اختيار استخدام الإشارات لمشاركة الحالة العالمية في طلبي. لذلك هذا شيء ليس من السهل بالضرورة تغييره، ولكن ليس من الصعب أيضًا تغييره. أيضا، فإنه يقع أكثر على هذا الجانب من الطيف. إنها استراتيجية للغاية. إنه نوع من الاستراتيجية في الطبيعة لأنه يشمل فريقي بأكمله، وربما سيكون له بعض الآثار على المدى الطويل، على الرغم من أنني يمكن أن أغير هذا القرار في وقت سابق. لذلك سأقول أنه يقع أكثر على الجانب المعماري للأشياء أو في هذا الصدد.
[03:12] ولكن هل هذا نوع من مثل قرار مستوى أقل لأنه حول الشيفرة، انها حول كيف يمكنني مشاركة مشيرا إلى شيفرة لذلك كما يقع أكثر حول هنا. لذلك يمكننا القول بشكل عام أن القرار نفسه يقع في هذا المجال.
[03:25] الآن لماذا يهم هذا؟ لماذا نحن حتى نتحدث عن هذا؟ والسبب في أن هذا مهم هو أنه يساعد على معرفة مدى الجدية التي يجب أن نتعامل بها مع القرار. كلما كان القرار يقع على نهاية المعمارية للطيف، كلما زاد الوقت الذي يجب أن نقضيه في التفكير أو إجراء بحث حول القرار للتأكد من أننا نتخذ القرار الصحيح. كلما زاد عدد الأشخاص الذين يجب أن يشاركوا أو على الأقل يدركون هذا القرار، والأهم من ذلك هو أن نوثّق ذلك القرار. وإذا كان هناك معماري في الفريق، فمن المحتمل أن يكون الشخص الذي يجري المكالمة وكلما كان القرار يتعلق بالتصميم بسرعة أكبر، يمكننا أن نجعل الأمر كما لو أننا لسنا مضطرين إلى مواءمة الفريق بأكمله حول كيفية تسمية وظيفة أو ليس علينا أن يكون لدينا اجتماع لتحديد أنماط التصميم التي نريد استخدامها.
[04:13] وهذا يساعدنا على تجنب شيئين إما التقليل من شأن قرار معماري وهو ما يعني التعامل معه مهم جدا من الصعب تغيير القرار بخفة جدا، أو المبالغة في تقدير قرار التصميم الذي سيكون مثل قضاء الكثير من الوقت في التفكير في شيء أنه تافه إلى حد كبير. هذه السيناريوهات تأتي في كل وقت.
[04:29] لذلك في المرة القادمة التي تواجه فيها القرار الذي يتعين عليك اتخاذه أو الذي يحتاج فريقك إلى اتخاذه، فإنه يساعد على معرفة أين يقع في هذا الطيف المعماري للتصميم لأنه يمكن أن يساعدك على تجنب هذين الفخين الشائعين والخطيرين للغاية.