إعادة هيكلة الكود

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

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

«من خلال التحسين المستمر لتصميم الكود، نجعل التعامل معه أسهل وأكثر سهولة. هذا في تناقض حاد مع ما يحدث عادة: القليل من إعادة الهيكلة والكثير من الانتباه يساهم في التسريع من وتيرة إضافة ميزات جديدة, إذا اعتدت على عادة إعادة الهيكلة بإستمرار ,فستجد أنه من السهل تطوير التعليمات البرمجية والحفاظ عليها.» – Joshua Kerievsky, Refactoring to Patterns[1]

التحفيز

عادة ما يكون الدافع وراء إعادة الهيكلة ناتج عن طريق ملاحظة بعض الاخطاء في الكود.[2] على سبيل المثال، قد تكون بعض الطرق لحل مشكل ما طويلة جدا، أو قد تكون الطريقة مكررة من طريقة أخرى قريبة. بمجرد التعرف عليها، يمكن معالجة هذه المشكلات عن طريق إعادة هيكلة الكود المصدري، أو تحويله إلى شكل جديد يتصرف كما كان من قبل بدون اخطاء وأسطر أقل.

بالنسبة الإجراءات الطويلة، يمكن استخراج إجراء فرعي أصغر أو أكثر؛ أو لتكرار الإجراءات، يمكن إزالة التكرار واستبداله بوظيفة مشتركة واحدة. يمكن أن يؤدي الفشل في تنفيذ إعادة الهيكلة إلى تراكم الديون التقنية (technical debt)؛ من ناحية أخرى، فإن إعادة الهيكلة هي إحدى الوسائل الرئيسية لسداد الديون التقنية.[3]

الفوائد

هناك فئتان عامتان من الفوائد لنشاط إعادة الهيكلة.

  1. قابلية الصيانة. من الأسهل إصلاح الأخطاء نظرًا لأن شفرة المصدر سهلة القراءة ونوايا مؤلفها سهلة الفهم.[4] يمكن تحقيق ذلك عن طريق تقليل الإجراءات الكبيرة المتجانسة إلى مجموعة من الطرق الفردية والموجزة جيدًا وذات الأهداف الفردية. يمكن تحقيق ذلك عن طريق نقل طريقة إلى فصل أكثر ملاءمة، أو عن طريق إزالة التعليقات المضللة.
  2. التوسيع. من الأسهل توسيع إمكانات التطبيق إذا كان يستخدم أنماط تصميم يمكن التعرف عليها، ويوفر بعض المرونة في حالة عدم وجود أي منها من قبل.

الإختبارات

يجب إعداد اختبارات الوحدات (unite tests) التلقائية قبل إعادة الهيكلة لضمان استمرار الإجراءات الروتينية كما هو متوقع.[5] يمكن أن تجلب اختبارات الوحدة الثبات حتى للأكواد الكبيرة المعادة الهيكلة عند إجرائها باستخدام التزام ذري (atomic commit) واحد. تتمثل إحدى الاستراتيجيات الشائعة للسماح بهيكلة آمنة وذرية تمتد لعدة مشاريع عبر تخزين جميع المشاريع في مستودع واحد، يُعرف باسم monorepo.[6]

مع اختبار الوحدة في مكانه، فإن إعادة الهيكلة هي دورة تكرارية لإجراء تحويل صغير للبرنامج، واختباره لضمان صحته، وإجراء تحويل صغير آخر. إذا فشل الاختبار في أي وقت، فسيتم التراجع عن التغيير البسيط الأخير وتتكرر العملية بطريقة مختلفة. من خلال العديد من الخطوات الصغيرة، ينتقل البرنامج من حيث كان إلى المكان الذي تريده أن يكون عليه. لكي تكون هذه العملية التكرارية عملية فعالة، يجب أن تجري الاختبارات بسرعة كبيرة، أو سيتعين على المبرمج قضاء جزء كبير من وقته في انتظار انتهاء الاختبارات. يصف مؤيدو البرمجة المتطرفة وغيرها من تطوير البرمجيات الحساسة (Agile) هذا النشاط بأنه جزء لا يتجزأ من دورة تطوير البرمجيات.

التقنيات

فيما يلي بعض الأمثلة على إعادة الهيكلة الجزئية؛ قد تنطبق هذه الأمثلة فقط على لغات معينة أو أنواع اللغات. يمكن العثور على قائمة أطول في كتاب إعادة الهيكلة (Refactoring) لمارتن فاولر.[2] توفر العديد من بيئات التطوير دعمًا تلقائيًا لهذه الهيكلات الجزئية. على سبيل المثال، يمكن للمبرمج النقر على اسم المتغير ثم تحديد إعادة إنشاء حقل "Encapsulate field" من قائمة السياق. سيطلب IDE بعد ذلك الحصول على تفاصيل إضافية، عادةً مع افتراضات معقولة ومعاينة للتغييرات البرمجية. بعد تأكيد من قبل مبرمج إنها ستنفذ التغييرات المطلوبة في جميع أنحاء الكود.

  • التقنيات التي تسمح لمزيد من التجريد
    • تغليف الحقل - رمز القوة للوصول إلى الحقل باستخدام طرق getter و setter
    • تعميم الكتابة - قم بإنشاء أنواع أكثر عمومية للسماح بمشاركة الكود أكثر
    • استبدل كود فحص الكتابة بالحالة / الإستراتيجية [7]
    • استبدال العبارات الشرطية بتعدد الأشكال [8]
  • تقنيات لكسر الشفرة إلى أجزاء أكثر منطقية
    • تقسم المكونات الشفرة إلى وحدات دلالية قابلة لإعادة الاستخدام تقدم واجهات واضحة ومحددة جيدًا وسهلة الاستخدام.
    • اقتطاف قسم نقل جزء من التعليمات البرمجية من قسم موجودة إلى قسم جديد.
    • اقتطاف إجراء، لتحويل جزء من إجراء أكبر إلى إجراء جديدة. من خلال تفكيك الكود في قطع أصغر، يصبح من السهل فهمه. هذا ينطبق أيضا على الدوال.
  • تقنيات لتحسين الأسماء وموقع الكود
    • نقل إجراء أو نقل حقل - الانتقال إلى قسم أو إلى ملف مصدر أكثر ملاءمة
    • إعادة تسمية الإجراءات أو إعادة تسمية الحقل - تغيير الاسم إلى اسم جديد يكشف الغرض منه بشكل أفضل
    • اسحب - في البرمجة الموجهة للكائنات (OOP)، والانتقال إلى الأقسام الفائقة
    • اضغط لأسفل - في OOP، الانتقال إلى فئة فرعية [9]
  • كشف الاستنساخ التلقائي [10]

إعادة هيكلة الأجهزة

بينما يشير المصطلح refactoring أصلاً حصريًا إلى إعادة هيكلة لرمز البرنامج، إلا أنه تمت إعادة تشفير الكود المكتوب بلغات وصف الأجهزة (HDLs) في السنوات الأخيرة. يستخدم مصطلح إعادة هيكلة الأجهزة كمصطلح مختزل لإعادة تشكيل التعليمات البرمجية في لغات وصف الأجهزة. نظرًا لأن HDLs لا تعتبر لغات برمجة من قبل معظم مهندسي الأجهزة، [11] إعادة هيكلة الأجهزة يعتبر مجالًا منفصلًا عن إعادة هيكلة الشفرة التقليدية.

تم اقتراح إعادة الهيكلة التلقائية لأوصاف الأجهزة التناظرية (في VHDL-AMS) بواسطة Zeng و Huss.[12] في نهجهما المتبع، تحافظ إعادة الهيكلة على السلوكات المحاكية لتصميم الأجهزة. القياس غير الوظيفي الذي يحسن هو أنه يمكن معالجة الكود المعاد تشكيله بواسطة أدوات تركيب قياسية، بينما لا يمكن للكود الأصلي. كما تم التحقيق في إعادة هيكلة HDLs الرقمية، وإن كان إعادة الهيكلة اليدوي، من قبل زميل سينوبسيس مايك كيتنغ.[13][14] هدفه هو جعل الأنظمة المعقدة أسهل في الفهم، مما يزيد من إنتاجية المصممين.

التاريخ

على الرغم من أن قانون إعادة هيكلة الأكواد قد تمة بشكل غير رسمي منذ عقود، إلا أن الدكتور وليام جريسوولد عام 1991. طرح أطروحة [15] هي واحدة من أولى الأعمال الأكاديمية الرئيسية في إعادة هيكلة البرامج الوظيفية والإجرائية، تليها أطروحة وليام أوبديك لعام 1992 [16] عن إعادة هيكلة البرامج الموجهة للكائنات، [17] على الرغم من أن جميع النظريات والآليات لها فترة طويلة كانت متاحة لأنظمة تحويل البرنامج. توفر كل هذه الموارد فهرسًا للطرق الشائعة لإعادة الهيكلة. يحتوي إجراء إعادة الهيكلة على وصف لكيفية تطبيق هذا الإجراء والمؤشرات الخاصة بموعد تطبيق هذا الإجراء (أو عدم ذلك).

يعد كتاب مارتن فاولر (Refactoring) : تحسين تصميم الكود الموجود [2] مرجعا أساسيا.

إعادة هيكلة الكود الآلية

لدى العديد من محرري البرامج وIDEs دعم إعادة الهيكلة الآلية. من الممكن هيكلة رمز التطبيق وكذلك عمل الاختبار.[18] فيما يلي قائمة ببعض المحررات، أو ما يسمى بمتصفحات إعادة الهيكلة.

انظر أيضًا

المراجع

  1. ^ Kerievsky، Joshua (2004). Refactoring to Patterns. Addison Wesley.
  2. ^ ا ب ج Fowler، Martin (1999). Refactoring. Improving the Design of Existing Code. Addison-Wesley. ص. 63ff. ISBN:978-0-201-48567-7.
  3. ^ Suryanarayana، Girish (نوفمبر 2014). Refactoring for Software Design Smells. Morgan Kaufmann. ص. 258. ISBN:978-0128013977.
  4. ^ Martin، Robert (2009). Clean Code. Prentice Hall.
  5. ^ 1963-، Fowler, Martin (1999). Refactoring : improving the design of existing code. Reading, MA: Addison-Wesley. ISBN:978-0201485677. OCLC:41017370. {{استشهاد بكتاب}}: الوسيط |مؤلف1= يحوي أسماء رقمية (مساعدة)صيانة الاستشهاد: أسماء متعددة: قائمة المؤلفين (link)
  6. ^ Smart, John Ferguson (2008). Java Power Tools (بالإنجليزية). "O'Reilly Media, Inc.". p. 301. ISBN:9781491954546. Archived from the original on 2020-02-12. Retrieved 2018-07-26.
  7. ^ Replace type-checking code with State/Strategy نسخة محفوظة 06 سبتمبر 2017 على موقع واي باك مشين.
  8. ^ Replace conditional with polymorphism نسخة محفوظة 04 أكتوبر 2017 على موقع واي باك مشين.
  9. ^ (these are only about OOP however).Refactoring techniques in Fowler's refactoring Website نسخة محفوظة 21 مارس 2019 على موقع واي باك مشين.
  10. ^ Bruntink, Magiel, et al. "An evaluation of clone detection techniques for crosscutting concerns." Software Maintenance, 2004. Proceedings. 20th IEEE International Conference on. IEEE, 2004. نسخة محفوظة 09 نوفمبر 2018 على موقع واي باك مشين.
  11. ^ لغة توصيف العتاد
  12. ^ Kaiping Zeng, Sorin A. Huss, "Architecture refinements by code refactoring of behavioral VHDL-AMS models". ISCAS 2006
  13. ^ M. Keating :"Complexity, Abstraction, and the Challenges of Designing Complex Systems", in DAC'08 tutorial [1]"Bridging a Verification Gap: C++ to RTL for Practical Design" نسخة محفوظة 28 مارس 2016 على موقع واي باك مشين.
  14. ^ M. Keating, P. Bricaud: Reuse Methodology Manual for System-on-a-Chip Designs, Kluwer Academic Publishers, 1999.
  15. ^ Griswold، William G (يوليو 1991). Program Restructuring as an Aid to Software Maintenance (PDF) (Ph.D. thesis). University of Washington. مؤرشف من الأصل (PDF) في 2016-12-04.
  16. ^ Opdyke، William F (يونيو 1992). Refactoring Object-Oriented Frameworks (Ph.D. thesis). University of Illinois at Urbana-Champaign. مؤرشف من الأصل (compressed Postscript) في 2019-12-16.
  17. ^ Martin Fowler, "MF Bliki: EtymologyOfRefactoring" نسخة محفوظة 20 سبتمبر 2018 على موقع واي باك مشين.
  18. ^ Xuan، Jifeng؛ Cornu، Benoit؛ Martinez، Matias؛ Baudry، Benoit؛ Seinturier، Lionel؛ Monperrus، Martin (2016). "B-Refactoring: Automatic test code refactoring to improve dynamic analysis". Information and Software Technology. ج. 76: 65–80. DOI:10.1016/j.infsof.2016.04.016. مؤرشف من الأصل في 2018-11-26.
  19. ^ What's new in Xcode 9 نسخة محفوظة 16 فبراير 2018 على موقع واي باك مشين.

روابط خارجية

Read other articles:

Atletica leggeraVeduta parziale di uno stadio con annesse pista outdoor e pedaneFederazioneWorld Athletics InventatoAntica Grecia Componenti di una squadraSport individuale(eccetto che per le staffette nelle quali gareggiano 3 o 4 atleti per squadra) ContattoNo GenereMaschile e femminile Indoor/outdoorIndoor e outdoor Olimpicodal 1896 Manuale L'atletica leggera è un insieme di svariate discipline sportive che possono essere raggruppate in quattro categorie: corse, marcia, concorsi (salti...

 

У этого термина существуют и другие значения, см. Либеральная партия. Либеральная партия Канадыангл. Liberal Party of Canadaфр. Parti libéral du Canada Лидер Джастин Трюдо Основатель Джордж Браун Основана 1 июля 1867 (Конфедерация) Штаб-квартира 81 Metcalfe st.B.O. 400Ottawa ON K1P 6M8 Страна  Канада Иде�...

 

Falfield Church, dekat A38 Falfield adalah sebuah desa, terletak dekat perbatasan utara distrik South Gloucestershire di Gloucestershire, Inggris. Dengan kode pos Wotton-under-Edge (GL12) dan sering salah didaftarkan dengan menempatkannya di distrik Stroud di Gloucestershire. Falfield terletak di sepanjang A38 road. Juga merupakan perhentian pertama dari Junction 14 di M5. Memiliki sebuah pusat kebun besar, dan dua penjara (Eastwood Park dan Leyhill) di dekatnya. Pranala luar Falfield.org.uk ...

Ernie DjohanLahirErnie Irawaty Djohan6 April 1951 (umur 73)Jakarta, IndonesiaKebangsaanIndonesiaNama lainErnie DjohanPekerjaanPenyanyiaktrisTahun aktif1962–sekarangKerabatHanief Djohan (kakak tiri),Sari Nila (Menantu)Karier musikGenrePoppop melayuInstrumenVokal Label Canary Records Remaco Phillips Records Singapore Musica Studio's Artis terkaitEka SaptaElly KasimLilis SuryaniOslan HuseinTetty KadiVivi SumantiZainal Combo Hj.Ernie Irawaty Djohan atau lebih dikenal dengan Erni...

 

Greg Van AvermaetGreg Van Avermaet lors de la présentation des équipes à Compiègne, organisée dans le cadre de la 119e édition de Paris-Roubaix en 2022.InformationsNaissance 17 mai 1985 (38 ans)LokerenNationalité belgeSpécialité PuncheurDistinctions Liste détailléeTrophée Flandrien (2008, 2013, 2014, 2015, 2016 et 2017)Mendrisio d'or (2017)Équipes amateurs 2005Josan-Ternat2006Bodysol-Win For Life-Jong VlaanderenÉquipes professionnelles 2007Predictor-Lotto2008-2009Silence-Lo...

 

Primeval cow of Norse mythology Auðumbla licks free Búri as she produces rivers of milk from her udders in an illustration from an Icelandic 18th century manuscript of the Prose Edda Audumbla milk company in Stockholm 1908. This house was also Alfred Nobel's birthplace. In Norse mythology, Auðumbla (Old Norse pronunciation: [ˈɔuðˌumblɑ]; also Auðhumla [ˈɔuðˌhumlɑ] and Auðumla [ˈɔuðˌumlɑ]) is a primeval cow. The primordial frost jötunn Ymir fed from...

Fictional character in Tekken video game series Fictional character Michelle ChangTekken characterMichelle Chang in Tekken Tag Tournament 2First gameTekken (1994)[1]Created bySeiichi IshiiVoiced by English Lynn Harris (Tekken, Tekken 2, Tekken Tag Tournament)Mibu Minami (Tekken 3)Jessica Robertson (Tekken: The Motion Picture)[2]Julie Ann Taylor (Tekken Tag Tournament 2) Japanese Narumi Hidaka (Tekken: The Motion Picture, drama CD) In-universe informationFighting styleChang ken...

 

Daftar tokoh suku Aceh adalah daftar yang memuat nama tokoh-tokoh dari etnis Aceh serta yang secara genetis berdarah Aceh, baik yang lahir di Provinsi Aceh maupun di perantauan. Khusus tentang tokoh-tokoh yang lahir di Provinsi Aceh bisa dilihat di Daftar tokoh Aceh. Perangkat pemantau ini bisa digunakan untuk melihat perubahan terbaru dari artikel-artikel yang terkait dengan halaman ini. Jika pembaca melihat artikel tokoh di Wikipedia bahasa Indonesia yang semestinya masuk ke dalam daftar in...

 

Artikel ini sebatang kara, artinya tidak ada artikel lain yang memiliki pranala balik ke halaman ini.Bantulah menambah pranala ke artikel ini dari artikel yang berhubungan atau coba peralatan pencari pranala.Tag ini diberikan pada November 2022. Little BearOfficial Promotional PosterSutradaraGer Duffy, Daire GlynnProduserFelipa RobertsonDitulis olehDaire GlynnPemeran Kieran O'Reilly Kojii Helnwein Calum Heath Tanggal rilis 1 Oktober 2015 (2015-10-01) (Vancouver International Film Fes...

Capital and largest city of Colombia For other uses, see Bogotá (disambiguation). Capital city in ColombiaBogotáCapital cityCiudad de BogotáSkyline of the International District of Bogotá with the tallest buildings in ColombiaLa CandelariaGold MuseumNational MuseumMonserrate SanctuaryNational ParkBolívar Square, with Palace of Justice (left), Primatial Cathedral (center) and National Capitol (right) FlagSealWordmarkNicknames: La Atenas Suramericana(The South American Athens) La Ciud...

 

20th commissioner of the RCMP Giuliano ZaccardelliCOM CStJ OMRIZaccardelli in 200620th Commissioner of the Royal Canadian Mounted PoliceIn office1 September 2000 – 15 December 2006Preceded byPhilip MurraySucceeded byBeverley Busson (interim) Personal detailsBorn1946 or 1947 (age 77–78)[1]Prezza, Abruzzo, ItalyAwards Legion of Honour – Officer (2003) Giuliano Zaccardelli COM CStJ OMRI (born c. 1947)[1] is an Italian-born Canadian retire...

 

Hydroxymatairesinol Names IUPAC name (7′S,8β,8′α)-4,4′,7′-Trihydroxy-3,3′-dimethoxylignano-9,9′-lactone Systematic IUPAC name (3R,4R)-4-[(S)-Hydroxy(4-hydroxy-3-methoxyphenyl)methyl]-3-[(4-hydroxy-3-methoxyphenyl)methyl]oxolan-2-one Identifiers CAS Number 20268-71-7 N 3D model (JSmol) Interactive image ChEMBL ChEMBL513565 ChemSpider 9123982 PubChem CID 10948757 UNII 6F59EK4QQH CompTox Dashboard (EPA) DTXSID70942387 InChI InChI=1S/C20H22O7/c1-25-17-8-11(3-5-15(17)21)7-13-14...

Capital and largest city of Yemen For other uses, see Sanaa (disambiguation). Not to be confused with Sena, Yemen or Saana. City in Capital's secretariat, YemenSanaa صَنْعَاء Ṣanʿāʾ 𐩮𐩬𐩲𐩥CityClockwise from top: Sanaʽa skyline, the Old City, National Museum of Yemen, Gate of Yemen, Al Saleh MosqueNickname: ʾAmānat Al-ʿĀṣimah (أَمَانَة ٱلْعَاصِمَة)Map of the citySanaaShow map of YemenSanaaShow map of West and Central AsiaCoordinates: 15°20...

 

西維珍尼亞 美國联邦州State of West Virginia 州旗州徽綽號:豪华之州地图中高亮部分为西維珍尼亞坐标:37°10'N-40°40'N, 77°40'W-82°40'W国家 美國加入聯邦1863年6月20日(第35个加入联邦)首府(最大城市)查爾斯頓政府 • 州长(英语:List of Governors of {{{Name}}}]]) • 副州长(英语:List of lieutenant governors of {{{Name}}}]])吉姆·賈斯蒂斯(R)米奇·卡邁克爾(...

 

Ця стаття потребує додаткових посилань на джерела для поліпшення її перевірності. Будь ласка, допоможіть удосконалити цю статтю, додавши посилання на надійні (авторитетні) джерела. Зверніться на сторінку обговорення за поясненнями та допоможіть виправити недоліки. Мат...

الدوري الوطني 1988–89 تفاصيل الموسم دوري الدرجة الخامسة الإنجليزي  [لغات أخرى]‏  النسخة 10  البلد المملكة المتحدة  البطل ماديستون يونايتد  [لغات أخرى]‏  الدوري الوطني 1987–88  الدوري الوطني 1989–90  تعديل مصدري - تعديل   الدوري الوطني 1988–89 هو موسم م...

 

Bendera Pribadi Ratu Jamaika Bendera Pribadi Ratu Jamaika adalah bendera pribadi Ratu Elizabeth II dalam peranannya sebagai Ratu Jamaika. Bendera ini telah disetujui untuk digunakan pada tahun 1962 dengan perbandingan sekitar 4:7~. Bendera ini hanya digunakan oleh Ratu ketika dia berada di Jamaika atau menghadiri acara di luar negeri dalam peranannya sebagai kepala negara Jamaika. Perwakilan Ratu, Gubernur-Jenderal Jamaika memiliki bendera tersendiri. Bendera ini terdiri dari bendera lambang ...

 

Air warfare branch of Slovakia's military Slovak Air ForceVzdušné sily Ozbrojených síl Slovenskej republikyEmblem of the Slovak Air ForceFounded1 January 1993; 31 years ago (1993-01-01)Country Slovak RepublicTypeAir forceRoleAerial warfareSizeApprox 3,200 personnel15 aircraft18 helicoptersPart ofSlovak Armed ForcesGarrison/HQZvolenCommandersAir Force CommanderMajor General Róbert Tóth[1]InsigniaRoundel Aircraft flownHelicopterMil Mi-17, UH-60MTrainerA...

Flag carrier of the United Kingdom British Airways plc IATA ICAO Callsign BA BAW; SHT SPEEDBIRD; SHUTTLE Founded25 August 1919; 104 years ago (1919-08-25)(as Aircraft Transport and Travel Limited)31 March 1974; 50 years ago (1974-03-31)(as British Airways)AOC #441HubsLondon–GatwickLondon–HeathrowFrequent-flyer programExecutive Club/AviosAllianceOneworldSubsidiariesBA CityflyerBA EuroFlyer[1]Fleet size257Destinations206[2]Parent comp...

 

Tembok Romawi Eboracum adalah benteng dan kota di Britania Romawi. Eboracum berada di lokasi yang saat ini merupakan bagian dari kota York, Yorkshire Utara, Inggris. Sebagai pelabuhan yang sibuk dan ibu kota provinsi, Eboracum adalah kota multikultural dengan penduduk yang berasal dari seluruh Kekaisaran Romawi.[1] Eboracum merupakan basis militer utama di Britania Utara. Saat pembagian provinsi Britannia, Eboracum menjadi ibu kota provinsi Britannia Inferior. Lalu pada tahun 296, Bri...