Вопрос: как в максимально сжатые сроки начать писать прикладные программы на С++ под Linux совершенно незнакомому с кодингом человеку?. Интересует создание GUI. Спасибо.
Быдлокод - понятие растяжимое. Ибо если у меня есть в коде вразумительные каменты, но вам он по какой-либо причине не нравится - так это сразу быдлокод? Что-то вы батенька загинаете...
В сжатые сроки не получится, вначале человеку придется осилить Шилдта, потом Саттера, потом Александреску. Если будет сильно ботать, то может быть на полгода управится.
>Ибо если у меня есть в коде вразумительные каменты, но вам он по какой-либо причине не нравится - так это сразу быдлокод?
Каменты не причем. Быдлокод - это концептуально неправильный код, который неэффективен и непродуман.
Например, многократные проверки на наличие в списке нуля, хотя _логика_ программы однозначно указывает его наличие или отсутствие в списке. А проверки не дешевые - например просмотр списка занимает линейное время, т.е. некая константа умноженная на количество. Если количество элементов не велико, то программа еще работает быстро. Когда количество элементов становится около 1 млн, программа уже существенно тормозит. В этот момент Настоящий Быдлокодер потребует более быстрого железа. Тут все потеряно. Ненастоящий - задумается, что же тут можно улучшить. Тут еще существует возможность к излечению.
Задача: проф дизайнеру весьма неплохо знающему Linux, требуется написать программу для мониторинга включенных компьютеров в сети на С++ с использованием GUI. Теперь поясню ситуацию: уволился последний кодер, его обязанности возложены на меня. Правда ЗП обещали повысить. Сейчас читаю книгу " Язык С++" В.В. Подбельский.
> Задача: проф дизайнеру весьма неплохо знающему Linux, требуется написать программу для мониторинга включенных компьютеров в сети на С++ с использованием GUI. Теперь поясню ситуацию: уволился последний кодер, его обязанности возложены на меня.
0_o
> Сейчас читаю книгу " Язык С++" В.В. Подбельский.
Не в курсе что это за книга, но сам отечественных авторов стараюсь не читать (в обсуждаемом контексте) и вам не советую.
> требуется написать программу для мониторинга включенных компьютеров в сети на С++ с использованием GUI
Вот такой совет: если производительность не критична (на мой взгляд здесь именно такой случай), то лучше попробовать python: 1. любой gui (qt, tk, gtk и пр.); 2. освоить его на порядок проще нежели плюсы; 3. огромное кол-во батареек.
1. C++ - это условие заказчика или сами придумали? 2. Мне нравится разработка на основе glade/gtk/C. В glade можно быстро отрисовать окошки (главное - понять концепцию ящиков (Boxes)), gtk проста в изучении, ну а С - значительно проще чем C++, т.к. в нем значительно меньше противоречий.
> требуется написать программу для мониторинга включенных компьютеров в сети на С++ с использованием GUI
Какого дьявола человек, ставящий задачу с т.зр. функции - сразу начинает диктовать язык разработки? Вежливо пошлите его нафиг - и подумайте спокойно и неторопливо о том, на какой платформе (язык, тулкиты, библиотеки) Вы действительно готовы разрабатывать указанный софт.
> Сейчас читаю книгу " Язык С++" В.В. Подбельский.
Немедленно выбрось это говно. От нее вреда больше, чем пользы.
Начинать учиться лучше по Страуструпу, 2-е издание (именно 2-е, оно есть в сети). Если нормально с английским, можно начать с этого: http://www.icce.rug.nl/documents/cplusplus/
Александреску - хорошая и полезная книга, но для написания GUI не обязательная.
Я не успел тебе этого посоветовать, но всё равно - извини. Не употребляй больше "дуализм ООП и структурного подхода" в списке недостатков Си++, потому что это не недостаток. И friend - тоже.
>Не употребляй больше "дуализм ООП и структурного подхода" в списке недостатков Си++, потому что это не недостаток.
А что - достоинство? Когда существует возможность обращения к private структурам и методам класса?
>И friend - тоже.
А friend - это стандартизированный грязный хак. "Всегда хочется нарушить правила. Вот и с помощью friend можно проделать дырочку в инкапсуляции и обратиться к внутренним данным и методам класса". ИМХО, это некачественная модель.
>>>> А friend - это стандартизированный грязный хак.
>>>Именно. И ты можешь его не применять.
>>Нет, приходится. Иначе ты операторы в обе стороны ты не определишь.
>Операторы использовать необязательно :)
Круто =)
>>>> ИМХО, это некачественная модель.
>>> Ну, назови языки, в которых нет такой возможности.
>> ЕМНИП, Java
>ЕМНИП, там по умолчанию у поля класс видимости package - это как раз то, для чего (по-хорошему) используется friend.
Неуверен.
>А в Smalltalk и Python вообще все поля открытые - и что, тоже негодная модель? :D
Почему же! Наоборот, мне такая модель нравится даже больше! В этой модели (по крайней мере с точки зрения на внутрение поля) мне не вставляют палки^Wпалочки в колеса, которые элементарно обходятся и никому не нужны.
В конце-концов, смысл программисту вызывать внутренние функции класса? Чтобы программа в результате не работала? Ты не находишь это глупым?
>>>А в Smalltalk и Python вообще все поля открытые - и что, тоже негодная модель? :D
> Почему же! Наоборот, мне такая модель нравится даже больше!
>Тогда не понимаю претензий к friend. Делай все поля public, и friend не понадобится.
Я понимаю. Но я в самом начале говорил о противоречивости модели. Таким образом, ты признаешь, что некоторые конструкции языка избыточны?
>> смысл программсту вызывать внутренние функции класса? Чтобы программа в результате не работала? Ты не находишь это глупым?
>Нахожу. Я так же нахожу, что людям свойственно делать глупости, и если язык этому мешает - это плюс.
Весьма спорно. Получается, что все уже продумано и решено до тебя. Нет, в некотором это конечно плюс, но все-таки... Возникает ощущение отсутствия контроля, и получается что тупая железка умнее тебя...
Почитай книжку по С++, хотя бы основы. Потом почитай книжку по Qt. Потом начинай писать.
Если логика примитивная - выживешь.
Но, имхо, если руководство жмотит денег на программиста и спихивает работу на дизайнера - я бы очень серьёзно подумал об осмысленности работы в этой фирме.
> Тебе для этого нужен ЦЕЛЫЙ ДЕНЬ? O_O Прекрати принимать тормозин в таких дозах :D
Ну, кофе с утра попить, потом обед, после обеда спать охота, перед уходом с работы как раз часика полтора есть ;) А если серьёзно, то вы новый ЯП и тулкит осваиваете меньше, чем за день? :)