"10 вещей, которые никогда не преподаются программистам в вузах"
Думаю никого не заинтересует эта запись, кроме самого же меня, но всё-таки попытаюсь написать свой опыт и отношение к этим «10 вещам».
Собственно эти 10 вещей прочитать можно на великолепном ресурсе habrahabr.
Здесь полную версию статьи я давать не буду, лишь перечислю её положения.
- Мы не правы
- Все, что может сломаться, ломается
- Весь код — дерьмо
- В программе всегда есть баг
- Наиболее важная вещь — это клиент
- Программа, изложенная на бумаге не работает
- Меньше — лучше
- Кодирование занимает 20% времени
- Заказчик НИКОГДА не знает, что он хочет
- Кто-то это уже делал
И попытаюсь их спроектировать на самого себя, через мой опыт разработки пока что, к сожалению, единственного «публичного» программного продукта, про который я уже писал тут.
Во время создания этого ужаса я отчётливо на себе увидел принцип действия 2,3,4,7 и 8 пунктов. Я постоянно мысленно называл себя извращенцем за свой ужасный код (пункт 3), несколько раз находил непредвиденные и порой глупые ошибки в тех местах программы, в которых был уверен (пункты 2 и 4). Ну а пункт 8 я почувствовал во всей красе, когда из 2 дней, которые я потратил на написание программы, первый день ушёл на сидение перед монитором и тыкание пальцем по столу, в попытках понять «как жеж блин написать так, чтобы эта хреновина работала, ещё и кушала поменьше ресурсов». Седьмой пункт тоже мне удалось проверить: из 450 строчек кода нет ни одной «левой» и ненужной. Всё довольно-таки минималистично, но тем не менее всё работает и этого вполне хватает.
Повезло, что не удалось проверить пункт 10 в действии. Точнее я был заранее благоразумен и поискал в интернете подобные вещи. Были найдены и программы и исходники, но они не подходили, так как все были адаптированы для платформы windows, а мне, по «заказу», необходимо было написать игрушку для кпк под управлением windows mobile. Не было найдено ни одного подходящего решения, в следствие чего и пришлось писать программку с нуля.
Пункты 1 5 и 9 к сожалению проверить в действии не удалось, так как «заказчиком» является мой одноклассник и по совместительству знакомый ещё аж с детского сада Максим Игумнов, который в общем-то знал что он хотел (пункт 9), да и не лез в процесс разработки (это и подразумевается под пунктом 5). Да и конкуренции и «соработников», которые тыкали бы мне, что я не прав не было (пункт 1). Пункт 6 даже не пытался опробовать, так как никогда не любил ничего писать на бумаге или ещё где-то. Всегда всё воплощал сразу в жизнь.
В целом пропустить через себя полный процесс разработки от продумывания в голове общих целей и интерфейса программы, до отлавливания багов радостных плясок было довольно-таки интересно и что самое главное познавательно для будущего программиста (надеюсь, что я им всё-таки стану).
← Приятные сюрпризы | И снова запахло нафталином → |
- Ключевые слова:
- Блог пользователя Максим Полушин
- Войдите или зарегистрируйтесь, чтобы получить возможность отправлять комментарии
Комментарии
Одной из самых важных вещей я считаю техзадание. Пока не знаешь, ЧТО должно получиться, будет получатся не то. 8) А понимание очень многих вещей приходит с опытом.
Чудеса там, где в них верят!
Еще раз спасибо тебе за игрушку (или все-таки программу?) ;)
А по поводу пунктов 5 и 9 могу помочь.))
http://vkontakte.ru/id11416817
Хе-хе, не, спасибо, пока не надо. Времени…эм…судя по всему на каникулах уже нету.
А каждая игрушка компьютерная по своей сути является программой. Я могу в мельчайших подробностях это доказать, но думаю не надо захламлять людям мозг. Приведу лишь пример с этой же «жизнью». Если бы я развернул её на весь экран поверх всех окон и добавил бы несколько анимаций, а также сделал бы главное меню вида «играть-загрузить игру-настройки-выход», то это смотрелось бы как компьютерная игрушка, хотя, как я уже сказал, любая игрушка является обычной программой, просто насыщенной мультимедия информацией, графикой и специфичным кодом для работы с видеокартой (для отрисовки внешнего вида в «серьёзных» игрушках всё-таки выгоднее использовать видеокарту, а не процессор).
> любая игрушка является обычной программой, просто
> насыщенной мультимедия информацией, графикой и специфичным
> кодом для работы с видеокартой
Ага, например, «Сапер».
Это сейчас был пример или контр-пример?
К твоим словам о мультимедиа (запомни, как пишется), графике и специфичном коде — контрпример.
В контексте данного комментария было понятно, что я говорю о «серьёзных» играх (т.е. играх, где действительно нужны все три составляющих). Сапёра и своё творение я к таким играм кончено же не отношу, это так, я бы даже сказал мини-игры, в которых абсолютно не нужны ни взаимодействие с видеокартой, ни куча мультимедиа информации ни прочих «плюшек» «серьёзных» игр.
Придираться к словам, Данил, прекрасно умею и я, и ты, насколько я понял из общения с тобой, не дебил, который не может понять, что именно я имел ввиду.