Многие программисты прилагают много усилий, чтобы писать с их точки зрения качественный код. Однако в силу проблемы индукции, понимание хорошего кода целиком зависит от конкретного опыта программиста. Как следствие, один и тот же код для одного человека может казаться вершиной качества, а для другого - говнокодом. Как только Вы перестали видеть проблемы в коде - это не значит, что код стал качественным, это всего лишь значит, что уровень проблем вышел за рамки Вашего понимания.
Это презентация доклада с Омского ИТ-субботника. Ссылка на видео самого доклада http://www.youtube.com/watch?v=JzxJUrvoO1Y
2. 02
TIKTOKCOACH.RU
Докладчик
Тюменцев Евгений
Разработка кросс-платформенных приложений
Руководство отделом разработки ПО в 40 человек
Тех. директор ИТ-компании в 70 человек
Управляющий партнер стартапа “Тик-Так Коуч”
5. 05
TIKTOKCOACH.RU
Определение качества ПО
ISO 9126
Качество ПО – совокупная характеристика ПО с учетом следующих составляющих:
–Надежность
–Сопровождаемость
–Практичность
–Эффективность
–Мобильность
–Функциональность
6. 06
TIKTOKCOACH.RU
Определение качества ПО
Надежность – набор атрибутов, относящихся к способности ПО сохранять свой уровень качества функционирования в установленных условиях за определенный период времени
•Уровень завершенности (отсутствие ошибок)
•Устойчивость к дефектам
•Восстанавливаемость
•Доступность
•Готовность
7. 07
TIKTOKCOACH.RU
Определение качества ПО
Мобильность — набор атрибутов, относящихся к способности ПО быть перенесенным из одного окружения в другое
•Адаптируемость
•Простота установки
•Сосуществование
•Замещаемость
8. 08
TIKTOKCOACH.RU
Определение качества ПО
Сопровождаемость - набор атрибутов, относящихся к объему работ, требуемых для проведения конкретных изменений (модификаций)
•Удобство анализа
•Изменяемость
•Стабильность
•Тестируемость
9. 09
TIKTOKCOACH.RU
Определение качества ПО
Практичность (применимость) — набор атрибутов, относящихся к объему работ, требуемых для исполнения и индивидуальной оценки такого исполнения определенным или предполагаемым кругом пользователей
•Понятность
•Простота использования
•Изучаемость
•Привлекательность
10. 10
TIKTOKCOACH.RU
Определение качества ПО
Эффективность — набор атрибутов, относящихся к соотношению между уровнем качества функционирования ПО и объемом используемых ресурсов при установленных условиях
•Временная эффективность
•Используемость ресурсов
11. 11
TIKTOKCOACH.RU
Определение качества ПО
Функциональность — набор атрибутов характеризующий, соответствие функциональных возможностей ПО набору требуемой пользователем функциональности
•Пригодность к применению
•Корректность
•Способность к взаимодействию
•Защищенность
13. 13
TIKTOKCOACH.RU
Абстракция
Абстракция выделяет существенные характеристики некоторого объекта, отличающие его от всех других видов объектов. (Гради Буч)
16. 16
TIKTOKCOACH.RU
Примеры абстракций
Сфера применения
•Процедурное программирование
•ООП
•Предметная область
Абстракция
•Процедура
•Класс
•Абстракция сущности
17. 17
TIKTOKCOACH.RU
Примеры абстракций
Сфера применения
•Процедурное программирование
•ООП
•Предметная область
•Многопоточное программирование
Абстракция
•Процедура
•Класс
•Абстракция сущности
•Поток
18. 18
TIKTOKCOACH.RU
Защитный механизм
Абстракция – это то, что не позволяет нам сойти с ума и освоить большой объем информации
19. 19
TIKTOKCOACH.RU
Пираха – самые счастливые
3 гласных, 8 согласных
Нет цифр
Нет религии, ремесел, искусства
Помнят только то, что помнит старейший живущий
20. 20
TIKTOKCOACH.RU
Проблема индукции
•Делаются выводы на основе конечного опыта
•Знания носят предельный характер Курица Б. Рассела
21. 21
TIKTOKCOACH.RU
Искажение нарратива
Н. Талеб «Черный лебедь»
Неспособность воспринимать факты без их интерпретации
26. 26
TIKTOKCOACH.RU
Группировка идей сверху вниз
Чтобы донести мысли до другого человека, нужно убедиться, что он группирует предметы так же как и Вы
30. 30
TIKTOKCOACH.RU
Копи-паст непобедим!!!
Ассемблер –> if, for, switch
Алгоритмы -> процедуры
Процедуры -> классы
Собственный код -> библиотеки
Компьютер -> облако