Course / دورة
Software engineering foundationsأساسيات هندسة البرمجيات
Objects, databases, APIs, and the habits that make the rest possible
الكائنات وقواعد البيانات وواجهات البرمجة والعادات التي تجعل الباقي ممكنًا
intermediate 26 lessons 6 chapters 18 hours
Before you start / قبل أن تبدأ: Programming basics
0 / 26 lessons completed / دروس مكتملة
What you will be able to do / ماذا ستستطيع أن تفعل
- Model a real problem as objects with clear responsibilities تنمذج مشكلة حقيقية ككائنات ذات مسؤوليات واضحة
- Design tables and query them with SQL, including joins تصمم الجداول وتستعلم عنها بـSQL، بما في ذلك الربط
- Read an API’s documentation and call it correctly تقرأ توثيق واجهة برمجة وتستدعيها بشكل صحيح
- Debug and search well enough to unstick yourself تصحّح وتبحث بما يكفي لتخرج نفسك من التعثّر
1 Objectsالكائنات 7
-
1
Objects and classes / الكائنات والأصناف
An object keeps some data and the things that can be done to it in one place. A class is the description you write once so you can make many of them. Everything else in this section is a consequence of those two sentences.
الكائن يحفظ بعض البيانات وما يمكن فعله بها في مكان واحد. والصنف هو الوصف الذي تكتبه مرة لتصنع منه كثيرًا. وكل ما تبقى في هذا القسم نتيجة لهاتين الجملتين.
-
2
State and behaviour / الحالة والسلوك
What an object knows, what it can do, and the rule that decides which is which. Getting this boundary right is most of what separates a class that helps from a class that is a bag of variables.
ما يعرفه الكائن، وما يستطيع فعله، والقاعدة التي تحدد أيهما أي. وضبط هذا الحد هو أكثر ما يفصل صنفًا يساعد عن صنف هو كيس متغيّرات.
-
3
Encapsulation / التغليف
Deciding what the outside world may touch. It is not secrecy for its own sake: it is the difference between an object that can guarantee something about itself and one that can only hope.
تحديد ما يجوز للعالم الخارجي أن يلمسه. وليس سرية لذاتها: بل الفرق بين كائن يستطيع أن يضمن شيئًا عن نفسه وكائن لا يملك إلا الأمل.
-
4
Inheritance / الوراثة
One class built on another, so the shared part is written once. It is the most taught idea in object-oriented programming and the most overused, so this lesson teaches both halves.
صنف مبني على آخر ليُكتب الجزء المشترك مرة. وهي أكثر أفكار البرمجة الكائنية تدريسًا وأكثرها إفراطًا في الاستعمال، فيعلّم هذا الدرس النصفين.
-
5
Polymorphism and interfaces / تعدد الأشكال والواجهات
Code that works with anything able to answer a particular set of questions, without knowing what that thing is. This is the idea that makes large programs extensible, and the reason PHP and Dart have a keyword for it.
شيفرة تعمل مع أي شيء يستطيع الإجابة عن مجموعة أسئلة بعينها، دون أن تعرف ما هو ذلك الشيء. وهذه الفكرة هي ما يجعل البرامج الكبيرة قابلة للتوسيع، وسبب وجود كلمة مفتاحية لها في PHP وDart.
-
6
Composition over inheritance / التركيب قبل الوراثة
Building a thing out of other things instead of inheriting from them. It is the advice every experienced developer gives and almost nobody explains, so this lesson shows the exact moment inheritance breaks and composition does not.
بناء الشيء من أشياء أخرى بدل الوراثة منها. وهي النصيحة التي يعطيها كل مطوّر خبير ولا يشرحها أحد تقريبًا، فيعرض هذا الدرس اللحظة التي تنكسر فيها الوراثة ولا ينكسر فيها التركيب.
-
7
Modelling a small system / نمذجة نظام صغير
Turning a paragraph of plain description into classes. This is the skill the previous six lessons were for, and the only one of them that has no right answer — but it has a method.
تحويل فقرة وصف عادي إلى أصناف. وهذه هي المهارة التي وُجدت الدروس الستة السابقة من أجلها، والوحيدة منها بلا جواب صحيح — لكن لها طريقة.
2 Databasesقواعد البيانات 4
-
8
What a database is / ما قاعدة البيانات
Tables, rows, columns and keys — and why a program keeps its data in one rather than in files. From this lesson on you have a real database in the page beside you, and every query you read you can also change and run.
جداول وصفوف وأعمدة ومفاتيح — ولماذا يحفظ برنامج بياناته فيها لا في ملفات. ومن هذا الدرس فصاعدًا لديك قاعدة بيانات حقيقية في الصفحة بجوارك، وكل استعلام تقرؤه تستطيع تغييره وتشغيله.
-
9
Designing a table / تصميم جدول
Choosing the columns, their types and their names. These decisions are cheap on the first day and expensive on every day after, because changing a column means changing every row and every query that mentions it.
اختيار الأعمدة وأنواعها وأسمائها. وهذه قرارات رخيصة في اليوم الأول وغالية في كل يوم بعده، لأن تغيير عمود يعني تغيير كل صف وكل استعلام يذكره.
-
10
Relationships between tables / العلاقات بين الجداول
One to many, many to many, and the foreign keys that hold them together. Three shapes cover almost every system you will ever build, and recognising which one you have is most of the design.
واحد إلى متعدد، ومتعدد إلى متعدد، والمفاتيح الأجنبية التي تربطها. وثلاثة أشكال تغطي كل نظام ستبنيه تقريبًا، والتعرف على أيها لديك هو أكثر التصميم.
-
11
Normalization / التطبيع
Storing every fact once. The formal rules have intimidating names; underneath, all three of the ones that matter are the same instruction, and this lesson shows the damage each one prevents.
تخزين كل حقيقة مرة واحدة. وللقواعد الرسمية أسماء مخيفة؛ وتحتها القواعد الثلاث التي تهم كلها تعليمة واحدة، ويعرض هذا الدرس الضرر الذي تمنعه كل واحدة.
3 SQLلغة SQL 4
-
12
SELECT and WHERE / SELECT وWHERE
Asking a table for the rows you want and the columns you need. The syntax takes ten minutes; the part that takes longer is
NULL, which does not behave the way your intuition insists it should.سؤال جدول عن الصفوف التي تريدها والأعمدة التي تحتاجها. والصياغة تأخذ عشر دقائق؛ والذي يأخذ أطول هو
NULL، وهو لا يتصرف كما يصر حدسك. -
13
Joins / الوصل
Answering a question with two tables at once. A join is the single most useful thing SQL does, and the two mistakes people make with it — the wrong kind, and a forgotten condition — are both visible on screen once you know what to look for.
الإجابة عن سؤال بجدولين معًا. والوصل أنفع ما تفعله SQL، والخطآن اللذان يقع فيهما الناس معه — النوع الخاطئ، والشرط المنسي — كلاهما مرئي على الشاشة متى عرفت ما تبحث عنه.
-
14
Grouping and aggregates / التجميع والدوال التجميعية
Turning many rows into one number, and then into one number per group. This is where SQL stops being a way to fetch data and becomes a way to answer questions.
تحويل صفوف كثيرة إلى رقم واحد، ثم إلى رقم لكل مجموعة. وهنا تكفّ SQL عن كونها وسيلة لجلب البيانات وتصير وسيلة للإجابة عن الأسئلة.
-
15
Changing data safely / تغيير البيانات بأمان
INSERT, UPDATE and DELETE — three statements that are easy to write and hard to take back. This lesson is as much about the habits around them as about the syntax.
INSERT وUPDATE وDELETE — ثلاث جمل يسهل كتابتها ويصعب التراجع عنها. وهذا الدرس عن العادات المحيطة بها بقدر ما هو عن الصياغة.
4 APIsواجهات البرمجة 6
-
16
What an API is / ما واجهة البرمجة
A way for one program to ask another for something, over the same HTTP your browser already speaks. Once you see that a REST API is just a website that answers in JSON instead of HTML, most of the mystery goes.
طريقة يطلب بها برنامج شيئًا من آخر، عبر HTTP نفسه الذي يتكلمه متصفحك أصلًا. وما إن ترى أن واجهة REST موقع يجيب بـJSON بدل HTML حتى يذهب أكثر الغموض.
-
17
Methods and resources / الطرائق والموارد
Five verbs, and the rule that decides which one you owe. Getting these right is most of what makes an API predictable — and one of them protects your users from double-charging themselves.
خمسة أفعال، والقاعدة التي تحدد أيها يلزمك. وضبطها هو أكثر ما يجعل الواجهة متوقَّعة — وأحدها يحمي مستخدميك من محاسبة أنفسهم مرتين.
-
18
Status codes / رموز الحالة
Three digits that tell the client what happened before it reads a single byte of the body. Choosing them well is the difference between an API a stranger can use and one they have to guess at.
ثلاثة أرقام تخبر العميل بما حدث قبل أن يقرأ بايتًا واحدًا من الجسم. وحسن اختيارها هو الفرق بين واجهة يستطيع غريب استعمالها وواجهة عليه تخمينها.
-
19
The shape of a request / شكل الطلب
Where each piece of information goes — the path, the query string, the headers, the body — and what a good response looks like when there are ten thousand rows and the client wants twenty.
أين تذهب كل قطعة معلومة — المسار وسلسلة الاستعلام والترويسات والجسم — وكيف يبدو الجواب الجيد حين تكون الصفوف عشرة آلاف والعميل يريد عشرين.
-
20
Sessions and tokens / الجلسات والرموز
How a server knows who is asking, twice over: the cookie-and-session way the web has used since the nineties, and the token way an API usually wants. They solve the same problem and fail differently.
كيف يعرف الخادم من يسأل، بطريقتين: طريقة الكعكة والجلسة التي استخدمها الويب منذ التسعينيات، وطريقة الرمز التي تريدها الواجهة عادةً. وهما يحلان المشكلة نفسها ويخفقان على نحوين.
-
21
Trying an API: curl and Postman / تجربة واجهة: curl وPostman
Sending a request by hand, before any of your code exists. Half the time you spend debugging a front end is spent finding out what the server actually said — and this is how you find out in thirty seconds instead.
إرسال طلب يدويًا قبل وجود أي من شيفرتك. فنصف الوقت الذي تقضيه في تنقيح واجهة أمامية يُقضى في معرفة ما قاله الخادم فعلًا — وهذه كيف تعرفه في ثلاثين ثانية بدلًا من ذلك.
5 Habits that make the rest possibleعادات تجعل الباقي ممكنًا 4
-
22
Reading documentation in English / قراءة التوثيق بالإنجليزية
Reference pages are not written to be read like prose, and reading them like prose is why they feel impenetrable. They have a fixed shape, five parts, and about forty words of vocabulary — this lesson gives you all three.
صفحات المرجع لا تُكتب لتُقرأ كالنثر، وقراءتها كالنثر هي سبب شعورك بأنها مستعصية. ولها شكل ثابت وخمسة أجزاء ونحو أربعين كلمة من المفردات — وهذا الدرس يعطيك الثلاثة.
-
23
Reading an error message / قراءة رسالة الخطأ
An error message is a report from the one moment your program knew exactly what was wrong. Most people glance at it and start guessing; reading it properly usually takes twenty seconds and answers the question.
رسالة الخطأ تقرير من اللحظة الوحيدة التي عرف فيها برنامجك بالضبط ما الخطأ. وأكثر الناس يلمحونها ويبدؤون التخمين؛ وقراءتها كما ينبغي تأخذ عشرين ثانية عادةً وتجيب السؤال.
-
24
Debugging as a method / التنقيح منهجًا
Finding a bug is a search, and searches have techniques. The difference between two hours and ten minutes is almost never knowledge of the language — it is whether you halved the search space or guessed at it.
إيجاد الخلل بحث، وللبحث تقنيات. والفرق بين ساعتين وعشر دقائق ليس معرفة اللغة تقريبًا أبدًا — بل هل نصّفت فضاء البحث أم خمّنته.
-
25
Searching, and judging what you find / البحث والحكم على ما تجد
How to ask a search engine or an AI assistant the question you actually have, and how to decide whether the answer you get back is true. The second half matters more than the first.
كيف تسأل محرك بحث أو مساعدًا ذكيًا السؤال الذي لديك فعلًا، وكيف تقرر هل الجواب الذي يعود صحيح. والنصف الثاني أهم من الأول.