Страница 2 из 2

Добавлено: 14 мар 2005, 13:08
Absurd
Мало документации
http://www.codeproject.com/wtl/ . Там есть артиклы некоего Michael Dunn' а.

Добавлено: 15 мар 2005, 01:53
Andy
Раз пошла такая пьянка, вставлю и я свои 5 центов.
Вот прочитал я книгу по С++ , стандарты выучил , в консоле напрограмился и пора уже переходит на что то серьезное
взялся за NET -овскую платформу токо литературы нет нормальной
MFC- этот меня в ужас ставит своими мастерами (туповать по моему)
Серьезное или нет, зависит не от типа приложения (консоль/графика), а от его применения. И хорошо-выполненное приложение это не то, в котором красиво отрисованы кнопочки на тулбаре, а приложение, написанное в духе ООП и самых современных технологий. Меня (и не только меня) просто бесят не структурированные программы на C/C++, в которых хрен знает как и где объявленны переменные/функции и понять которую (а тем более модифицировать) просто невозможно. За такое надо увольнять, ну или хотябы уменьшать зарплату в 2 раза. :twisted:

C# косвенно способствует развитию хорошего стиля программирования и направляет вышеупомянутых "горе-кодеров" в правильное русло - ООП. Поэтому мое мнение, что надо начинать не с каких-то библиотек и классов (как MFC, ATL, WTL (WTL кстати в умелых руках рулит)), а с ООП вообще. Купить книжек по шаблонам, по типичным задачам ООП и изучать их на примере C++ (нежелательно), Java (очень даже допустимо) или C# (рекомендовано Andy ;) ).

Какой толк от вашего знания как отрисовывать UI через Custom Draw, если потом вашу разработку, вашу фишку, нельзя портировать в другой проект без большой порции мата и ящика пива? И вообще, программирование шареварных игрулек и примочек и РЕАЛЬНОЕ программирование отличаются друг от друга как день и ночь.

Ну а что учить далее? Далее надо изучать технологии. Причем не все конечно, а наиболее важные (остальные уже можно изучить по мере надобрости). Например технологии доступа и работы с данными (ADO.NET/XML) и т.п.
Верно, начинать следует с изучения самой идеология программирования в среде Windows. И делать это желательно на Win32 API, чтобы прочуствовать как всё работает.
Romeo, не соглашусь. С юного возраста я занимался программированием на ассемблере. Я уже в Х лет знал "как все работает" скажем в ДОС 3.30. Вплоть от вызова функций прерывания int 21h и до перехода обработчика в фунции БИОСа и перехода функции БИОСА к обращению к портам I/O. Да, это мне многие современные вещи позволяет увидеть глубже - но есть ли сейчас от этго польза? Скорее всего нет. Потому что впрок не научишься. Как сказал кто-то известный - программист должен переучиваться каждые 2 года. И он возможно сказал правильно.
И еще один совет. Забей на MFC. И на это приведу несколько причин(мое мнение).
- Есть более удачные реализации в виде Forms.
Forms не замена MFC. Form - это только UI, причем покамест в них нереализованны многие действительно необходимые вещи.
Главное он понял - начинать надо с Win32
Если я кого-то убедил, то он понял, главное - это не думать что все в этом мире ясно :) Всегда надо учиться с прицелом на будущие "через n лет". :) Вот 8)

Добавлено: 16 мар 2005, 10:19
Absurd
Andy писал(а):И хорошо-выполненное приложение это не то, в котором красиво отрисованы кнопочки на тулбаре, а приложение, написанное в духе ООП и самых современных технологий.
Скорее написанное расширяемо, с продуманным ядром итп. Этого можно добиться по идее и на голом С: ОС UNIX ведь до сих пор жива, хоть ей и за 20 давно уже. В то же время большинство third-party классов под Яву написано через Ж... Сомневаюсь, что в C# будет лучше. Конечно, в умелых руках современные языки более продуктивны.

Так что изучать надо все-таки принципы структурирования больших проектов. А литературы на эту тему днем с огнем не найти. Вот например, сейчас изучаю я Оракл - книжек про сущности Oracle (table, index, sequence etc) навалом, а про то, как эти сущности надо использовать для проектирования реальных баз данных - нефига. По С++ был хотя бы Мейерс или Александреску. Придется, наверное, на Амазоне искать.
Andy писал(а):
Верно, начинать следует с изучения самой идеология программирования в среде Windows. И делать это желательно на Win32 API, чтобы прочуствовать как всё работает.
Romeo, не соглашусь. С юного возраста я занимался программированием на ассемблере. Я уже в Х лет знал "как все работает" скажем в ДОС 3.30. Вплоть от вызова функций прерывания int 21h и до перехода обработчика в фунции БИОСа и перехода функции БИОСА к обращению к портам I/O.
ДОС был объективно плохой ОСью. Ядро же Win32 проектировалось довольно грамотными людьми, некоторые из которых до этого писали OpenVMS. Так что знание ядра не повредит.

Добавлено: 16 мар 2005, 15:12
Andy
UNIX ведь до сих пор жива, хоть ей и за 20 давно уже
Absurd, не забывай - разработкой UNIX занимаются в основном большие профессионалы, а речь в топике идет как эффективно начать в нуля.
Сомневаюсь, что в C# будет лучше
Большинство программистов (как и людей любой другой профессии) в мире "средненькие". Они допускают утечки памяти, выход за границы массивов и т.п. Поэтому большинство ПО в мире потенциально дырявое. От этого никуда не уйти - даже в Майкрософт работают такие "умельцы". "Управляемый код" написанный в частности на C# потому и управляемый, что позволяет переложить (в небольшой степени) ответственность за безопасность и продуктивность исполнения кода с языка программирования и программиста C# на платформу .NET. Конечно это не значит, что теперь можно все, но программисты-чайники получили шанс писать нормальные программы.
ДОС был объективно плохой ОСью.
ДОС был ОСью своего времени. Конечно он был на несколько порядков ниже UNIX. Даже больше - эти системы просто не сравнимы. Но скажу тебе как телекоммуникационщик - ДОС до сих пор используется в самых современных АТС как операционная система для отдельных блоков. Благодаря своей простоте и быстроте, его можно эффективно использовать как оболочку исполнения одной-единственной программы. Тут UNIX отдыхает...

Добавлено: 17 мар 2005, 13:53
Absurd
Andy писал(а): разработкой UNIX занимаются в основном большие профессионалы, а речь в топике идет как эффективно начать в нуля.
Вот я к тому и клоню, что все изучение программирования с нуля и заключается в том, как написать программу, чтобы она работала как я задумал и не развалилась бы по пути. По началу будет не получаться. Потом человек может либо пойти либо в сторону грубой силы либо в сторону инженерной культуры.
Andy писал(а):
Сомневаюсь, что в C# будет лучше
Большинство программистов (как и людей любой другой профессии) в мире "средненькие". Они допускают утечки памяти, выход за границы массивов и т.п. Поэтому большинство ПО в мире потенциально дырявое. От этого никуда не уйти - даже в Майкрософт работают такие "умельцы".
Такие ошибки обычно отлавливаются на этапе бета-тестинга. Проблема говеной архитектуры на этапе бета-тестинга, к сожалению, не решаема. Если кто-то использует наследование, чтобы получить доступ к protected полям класса - это не решается. Такие люди вообще рассматривают язык как некий источник проблем и тренируют свое умение такие проблемы обходить. "Такое-то поле объявлено как protected - а я применю наследование! Какой я хитрый!".
Andy писал(а):
ДОС был объективно плохой ОСью.
ДОС был ОСью своего времени. Конечно он был на несколько порядков ниже UNIX.
Я не смотрю на фичи как на что-то обязательное. Ну, однозадачная... Ну, однопользовательская... Но ведь в принципе может быть объективно хорошая однозадачная однопользовательская ОС. В ДОСЕ ведь нельзя например вызывать прерывание ОС, находясь в прерывании. Функции БИОС вызывать можно, а ДОС - нельзя. И все потому что кто-то мозганул и сделал для ДОСА отдельно свой стек.
Глядя на структурe ядра win32 можно много чему научиться, ДОС же весьмя эклектичен (скажу мягко).