Пн Вт оба дня сидел дрючил второй мегапроект. Вроде бы и закончил, но всегда есть над чем поработать, причём, инженерная мысля часто приходит не сразу.
читать дальшеВ пн сел переписывать то, что наваял за выходные. А то больно сложно получилось. Как только надо что-то добавить, всё, ступор сразу. Переписал, правда, не до конца. Проще получилось и возможности прибавились. Я бы и дальше писал, но - незаметно подкрался ДР. Я-то праздновать не планировал особо, но подруга хотела, чтоб всё, как у людей. В общем, проще отпраздновать. Сижу я, значит, бухаю, а мысли далеко - в программировании ![;)](http://static.diary.ru/picture/1136.gif)
На следующий день встал, полчаса или час сидел тупел, не мог цикл написать. Ещё прилёг поспал, потом справился. И до позднего вечера снова херачил. Оно вроде и несложно, но когда начинаешь отлаживать, на всякие дебильные ошибки много времени уходит. Пока там докопаешься, что и как. Но опыт быстро приходит, вспоминаю старые трюки и время поиска ошибок неуклонно сокращается. В принципе проект готов, но не мешало бы его чуток улучшить.
Некоторые наблюдения за последнее время. Я ваще до этого много лет мутил на Ассемблере, потом на С немного, Паскаль там и подобное. Но всё это были языки процедурные. И такой подход настолько вошёл в привычку, что трудно мыслить по-другому. Настало время переходить на С++. Читаю, значит, эту объектно-ориентированную премудрость. Умные книжки всякие. Из тех, что были доступны в университетской библиотеке. Афтары, значит, приводят пример. Вот, мол, возьмём строки. В С это будут обычные строки, а в С++ можно сделать умные строки, которые, типа, сами знают свою длину и могут сами себя распечатывать. В разных книжках похожий пример. Я эту муть почитал и говорю - а на хрена нам весь этот огород городить, если мы можем в старом добром С тупо распечатать эти строки? И забил на этот С++, не впечатлился. Кроме того, они ж там втирали про инкапсуляцию, наследование и чо-то там ещё - третий кит ООП. Типа, класс это шаблон для выпекания объектов с данными и кодом для их обработки. Мне и втемяшилось, что класс надо создавать там, где у тебя есть много однотипных объектов. Ну да, встречались у меня в программах объекты, которых много. Но остальных-то - мало. И чо с остальными тогда делать? И вот, через примерно 20 лет я осознал, что класс это не только форма для объектов, а ещё кусок программы, относительно обособленный от других таких же кусков. За счёт чего его можно понемножку менять без особых последствий для всей программы. И сам подход ООП на это и нацелен. Если б я такое прочитал 20 лет назад вместо хуйни про строки, то может вся жизнь по-другому бы сложилась
Опыт написания более менее объёмных программ у меня был, и пишутся они как раз по небольшим кусочкам. Таким образом, упрощается развитие ПО, а ПО, что бы там ни говорили, дожно развиваться. Не переписывать же каждый раз заново одно и то же.
Если бы книжка 70-016 попалась мне в 2000-2001 году, тоже мож вся жизнь по-другому бы сложилась ![;)](http://static.diary.ru/picture/1136.gif)
Раньше под каждый проект создавал отдельную рабочую область - Workspace. И потом, как дурак лазил туда-сюда, если надо было подсмотреть, как я там чо сделал. Сейчас в одну область добавил второй проект - жизнь стала намного проще!
Общался с коллегой по работе по поводу С++. Он говорит, писал в универе сначала на С, потом С++ у них был.
- Чо, говорю, не тянет временами чо-нить написать?
- Ты чо, я уж всё забыл!
- Дык я тоже, думаешь, помню? Каждый раз лезу в тырнет, как там этот сраный do-while пишется или чо там? repeat until? Т.е. помню, что там что-то такое есть, но как оно в деталях, хрен знает. Это хорошо, щас тырнет есть, а раньше ваще, по каждой такой херне лезешь в книжку, как дурак. Времени уходило - уйма. Да и щас, в общем, тоже много уходит.
Короче, необязательно знать язык или там уметь чо-то на супермегауровне. Главное - хотеть писать. И остальное всё придёт.
Решил вчера заменить класс CView на CScrollView. Ну и заменил, как сказано в тырнете, class CMyView : public CView на CScrollView. Скомпилилось нормально, без ошибок. Запускаю - вылетает. Что за хрень? Оказывается, надо не в одном месте заменить, а во всём коде упоминания CVIew на CScrollView. Ну кто бы мог подумать? ![:-(](http://static.diary.ru/picture/1147.gif)