يلعب قانون كونواي، الذي ينص على أن أنظمة البرمجيات تميل إلى عكس هياكل الاتصال الخاصة بالمنظمات التي تقوم ببنائها، دورًا حاسمًا في الطريقة التي يتم بها هيكلة تطوير الويب الحديث. لقد تم تشكيل التطور من الممارسات المبكرة إلى أنظمة اليوم الأكثر تعقيدًا، مثل الواجهات الأمامية الصغيرة والبنى القائمة على المكونات، إلى حد كبير من خلال هذا المبدأ. من خلال النظر في كيفية فصل الاهتمامات تاريخيًا في تطوير الويب، يمكننا أن نفهم بشكل أفضل كيف ظهرت الممارسات الحالية ولماذا تبدو كما هي اليوم.
في الأيام الأولى لتطوير الويب، كانت الفرق المختلفة مسؤولة في كثير من الأحيان عن تقنيات محددة. تعامل فريق واحد مع HTML، وكان فريق آخر مسؤولاً عن CSS، واهتم فريق آخر بجافا سكريبت ومنطق جانب الخادم، مثل PHP. كان هذا الفصل الواضح بين المسؤوليات، أو "فصل الاهتمامات"، مدفوعًا بالمهارات المتميزة التي يمتلكها كل فريق. يقوم المصممون بتسليم ملفات Photoshop ذات دقة البكسل إلى فريق واحد، والذي يقوم بعد ذلك بتحويلها إلى قوالب HTML وCSS. بمجرد الانتهاء من القوالب، سيقوم الفريق التالي بدمجها في التطبيق، وغالبًا ما يواجهون مشكلات عندما لا تكون الأمور مناسبة تمامًا.
قد يقوم المصمم بتسليم ملف .psd مع تصميم جميع أركان الجدول التسعة بدقة، وسيقوم فريق HTML/CSS بتقطيعه إلى تخطيط عملي. لكنها كانت منفصلة إلى حد كبير عن المنطق الفعلي للتطبيق أو تفاعلات المستخدم. كانت مهمتهم فقط التأكد من أن العناصر المرئية تعمل. يقوم فريق الواجهة الخلفية، الذي يتعامل مع PHP وJavaScript، بدمج هذه القوالب الثابتة في التطبيق العامل، وغالبًا ما يجد أن الحلول التي قدمتها الفرق السابقة لم تكن مثالية لاحتياجات التطبيق. كان هذا انعكاسًا لكيفية هيكلة المؤسسات، حيث يمتلك كل فريق جزءًا مختلفًا من العملية دون الكثير من التواصل المتبادل.
اليوم، تغيرت الطريقة التي نفصل بها المخاوف بشكل كبير. بدلاً من تقسيم المسؤوليات حسب التكنولوجيا - مثل فريق واحد لـ HTML وCSS، وآخر لـ JavaScript وPHP - من المرجح أن تكون الفرق الحديثة مسؤولة عن المجموعة الكاملة لأجزاء معينة من التطبيق. يمتلك كل فريق عادةً شريحة رأسية من التطبيق، بما في ذلك كل شيء بدءًا من مكونات الواجهة الأمامية وحتى منطق الواجهة الخلفية. هذا التحول مدفوع بظهور البنى القائمة على المكونات، حيث تكون المكونات القابلة لإعادة الاستخدام والمكتفية ذاتيا هي اللبنات الأساسية للنظام.
على سبيل المثال، بدلاً من قيام فريق واحد بالتركيز على HTML وCSS عبر الموقع بأكمله، وفريق آخر يتعامل مع JavaScript والتكامل من جانب الخادم، لديك الآن فرق مسؤولة عن ميزات أو مكونات مميزة، مثل أو
هذا الفصل الجديد للمخاوف، حسب الميزة أو المكون بدلاً من التكنولوجيا، يسمح للفرق بالتكرار بشكل أسرع. على سبيل المثال، يمكن للفريق المسؤول عن أداة الدردشة تنفيذ التغييرات على كل من واجهة المستخدم وواجهة برمجة التطبيقات الخلفية دون انتظار فريق آخر للتعامل مع جزء واحد من النظام. يتمثل الاختلاف الرئيسي الآن في أنه بدلاً من وجود فرق متخصصة تركز فقط على HTML أو JavaScript، لديك فرق متعددة الوظائف تمتلك ملكية مكوناتها أو ميزاتها بالكامل.
إحدى أهم نتائج هذا التحول هي ظهور الواجهات الأمامية الصغيرة، حيث تمتلك الفرق المختلفة أجزاء مختلفة من الواجهة الأمامية، تمامًا كما تمتلك أجزاء من الواجهة الخلفية. وهذا يسمح بمستوى من الاستقلالية لم يكن ممكنًا في الأيام الأولى. تعكس بنية الواجهة الأمامية الدقيقة الاستقلالية التي تتمتع بها الفرق الآن في إدارة مكوناتها.
على سبيل المثال، قد يمتلك الفريق المسؤول عن
في المقابل، في نموذج الفصل القديم بين HTML CSS وJS PHP، تتطلب التغييرات في أي جزء من النظام التنسيق بين فرق متعددة. إذا كانت الواجهة الأمامية بحاجة إلى ميزة جديدة، فسيتعين على فريق HTML/CSS العمل مع فريق JavaScript لضمان عمل التخطيط أو الوظيفة الجديدة على النحو المنشود. اليوم، مع امتلاك الفرق لمكونات أو ميزات محددة من الأعلى إلى الأسفل، تقل الحاجة إلى التنسيق بين الفرق بشكل كبير، مما يسمح بدورات تطوير ونشر أكثر سرعة.
يظل قانون كونواي ذا صلة كما كان دائمًا. لا تزال الطريقة التي نبني بها البرمجيات اليوم تعكس الطريقة التي يتم بها تنظيم فرقنا، ولكن الفرق هو أن هياكل الفريق الحديثة أكثر تركيزًا على الميزات وأقل انعزالًا عن التكنولوجيا. لقد أفسحت الطريقة القديمة لتقسيم المسؤوليات حسب التكنولوجيا (HTML CSS مقابل JS PHP) المجال لنموذج يكون فيه كل فريق مسؤولاً عن ميزة أو مكون كامل.
يسمح هذا الفصل الحديث للمخاوف بتواصل أفضل داخل الفرق وملكية أكثر تركيزًا. تعد الواجهات الأمامية الصغيرة، والبنى القائمة على المكونات، والفرق التي تركز على الميزات، كلها انعكاسات لرؤية كونواي: أن برنامجك سيعكس حتماً هيكل فريقك. مع تطور هياكل فريقنا، تتطور أيضًا الأنظمة التي نبنيها، حيث تصبح أكثر مرونة ونمطية واستقلالية.
لقد أحدث التحول من الفصل القائم على التكنولوجيا بين الاهتمامات إلى الفصل القائم على الميزات ثورة في كيفية بناء تطبيقات الويب. يشرح قانون كونواي سبب حدوث هذا التطور: نظرًا لأن الفرق أصبحت أكثر استقلالية وتركيزًا على الميزات، فقد حذت بنية أنظمتنا حذوها. تعكس الواجهات الأمامية الصغيرة ومكتبات المكونات الداخلية والتطوير القائم على المكونات الحاجة الحديثة إلى فرق مستقلة ومتعددة الوظائف تمتلك كلاً من الواجهة الأمامية والخلفية لميزاتها أو مكوناتها المحددة.
على الرغم من تطور الأدوات والأطر، إلا أن المبدأ الأساسي يظل كما هو: الطريقة التي يتم بها هيكلة الفرق تؤثر بشكل مباشر على البرامج التي يقومون بإنشائها. من خلال فهم قانون كونواي وتاريخ فصل الاهتمامات، يمكننا أن نقدر الأنظمة التي نعمل معها اليوم بشكل أفضل ونتوقع كيف يمكن أن تستمر في التطور.
تنصل: جميع الموارد المقدمة هي جزئيًا من الإنترنت. إذا كان هناك أي انتهاك لحقوق الطبع والنشر الخاصة بك أو الحقوق والمصالح الأخرى، فيرجى توضيح الأسباب التفصيلية وتقديم دليل على حقوق الطبع والنشر أو الحقوق والمصالح ثم إرسالها إلى البريد الإلكتروني: [email protected]. سوف نتعامل مع الأمر لك في أقرب وقت ممكن.
Copyright© 2022 湘ICP备2022001581号-3