Sciant, ръководител на софтуерни проекти, george.ivanovsciant.com
Михаил Стойнов
Sciant, софтуерен разработчик, студент-консултант на Майкрософт за ФМИ, mihail.stoynovfmi.uni-sofia.bg
Ивайло Христов
софтуерен разработчик, ivaylo.hristovgmail.com
Анотация на курса
Целта на курса “Качествен програмен код” е да запознае аудиторията с принципите за изграждане на висококачествен програмен код в процеса на разработка на софтуер. Качеството на кода се разглежда в неговите най-съществени характеристики – коректност, леснота за четене и леснота за поддръжка. Обясняват се принципите за създаване на качествени класови йерархии, класове и подпрограми (методи). Дефинират се фундаменталните понятия „функционална независимост” и „свързаност на отговорностите” и влиянието им при изграждане на класове и подпрограми. Дават се препоръки за правилна работа с променливи и данни, както и насоки за правилното именуване на променливите и другите елементи на програмите. Дискутират се препоръки за организиране на логическите конструкции за управление. Обясняват се утвърдени методологии за откриване и отстраняване на грешки и оптимизиране на кода. Обръща се внимание на преработката на съществуващ код (refactoring). Дефинират се принципите за добро форматиране на кода. Въвежда се концепцията за „самодокументиращ се код” като стил на програмиране. Разглеждат се теми, свързани с работата в екип, управлението на софтуерни проекти и влиянието на някои психологически аспекти върху качеството на софтуера. Препоръките, техниките и практиките за изграждане на качествен програмен код, разглеждани в курса, са независими от езика за програмиране.
The „High-quality programming code” course objective is to introduce the students to the principles of high-quality programming code construction during the software development process. The quality of the code is discussed in its most important characteristics – correctness, readability and maintainability. The principles of construction of high-quality class hierarchies, classes and subroutines (methods) are explained. Two fundamental concepts – “loose coupling” and “strong cohesion” are defined and their effect on the construction of classes and subroutines is discussed. Some advices for correctly dealing with the variables and data are given, as well as directions for correct naming of the variables and the rest elements of the program. Best practices for organization of the logical programming constructs are discussed. Some methodologies for testing, debugging and code optimization are explained. Attention is taken also to the “refactoring” as a technique for improving the existing code. The principles of good formatting of the code are defined and explained. The concept of “self-documenting code” as a programming style is introduced. Some topics related to team working, software project management and some psychological aspects of software development are also discussed. The techniques and practices for constructing high-quality programming code discussed in the course are independent of the programming languages.
Изисквания
Базови познания по обектно-ориентирано програмиране