Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Учебный проект № 2

87
28 сентября 2009 года
Kogrom
2.7K / / 02.02.2008
Учебный проект № 2

Цели проекта:

1. Освоить грамотное использование ООП в проектах среднего размера: применение ООД, паттернов, UML.

2. Изучение рефакторинга и Unit-тестирования.

3. Изучение различных технологий создания ПО: языков, библиотек и т.д.

4. Освоение работы в команде удаленных разработчиков. Разработка методики на основе чего-то вроде Экстремального Программирования (XP).


Предполагаемые условия и средства разработки:

1. Язык разработки – Python. Язык лаконичный, гибкий, в комплект входят "батарейки", то есть, например, не надо искать модуль для Unit-тестирования – он уже включен. Есть сборщик мусора, что упрощает проектирование диаграмм классов, компонент и т.д. Отсутствие этапа компиляции делает более удобным метод создания программы маленькими шажками.

2. Операционная система – обсуждается. Кроссплатформенность предпочтительна.

3. GUI - wxPython. Обсуждается.

4. IDE: обсуждается. Хотя, я остановился пока на редакторе UliPad.

5. Репозиторий: SVN.

7. Сервер для репозитория – code.google.com. Обсуждается.

8. Средства общения: IRC, ICQ, форум.

Идея проекта.

Есть 3 идеи, которые мне могут быть интересны: редактор простейшей анимации, игра, программа регистрации данных. Опишу позже, если найдутся желающие принять участие. Главное, чтобы проект был менее абстрактным, чем предыдущий.

Участники:

1. Организатор. Пока я. Обязанности: освещать ход развития проекта, привлекать людей.

2. Разработчики: студенты, программисты-самоучки для которых и затевается этот проект. Обязанности: проектировать программу, писать код. Требования: уметь читать и понимать прочитанное, проявлять активность.

3. Кураторы: сами разработчики. Обсуждается.

4. Руководитель: нет. Обсуждается.

5. Возможно, художник. Художником могу быть я.


Приблизительная методика разработки:

1. Создается эскиз ТЗ, обсуждается.
2. Создаются эскизы диаграмм компонент, классов. Обсуждаются.
3. Каждый участник получает для разработки один (несколько) компонент из выбранной диаграммы.
4. Каждый участник становится куратором для другого. Он должен иметь доступ к коду курируемого, следить, чтобы тот "не лез в болото".
5. Код каждого участника выкладывается на всеобщее обозрение не реже, чем раз в неделю.
6. Если кто-то не успевает написать код, требующийся для других участников, то его код передается другому участнику в обмен на менее востребованный код.


Выгода:

1. Для разработчиков – опыт, новые умения.
2. Для меня - тоже. Бонус – шаг к созданию новых разделов :)

Жду критики, предложений, желающих присоединиться к проекту.
Страницы:
6
28 сентября 2009 года
George
4.1K / / 05.01.2007
Мои пять копеек:
1. Раз уж питон, то почему бы не сделать кросплатформенно?
2. Как насчет моей идеи? Может ее попробовать? (Хотя мб слишком просто...)
3. С кем это все обсуждается, кто уже участвует?
87
28 сентября 2009 года
Kogrom
2.7K / / 02.02.2008
Цитата: Washington
1. Раз уж питон, то почему бы не сделать кросплатформенно?


Оно предпочтительно, но могут возникнуть трудности (GUI например не всегда одинаково выглядят даже у Java). Поэтому я не ставлю это обязательным требованием.

Цитата: Washington
2. Как насчет моей идеи? Может ее попробовать? (Хотя мб слишком просто...)


Мне кажется, что та идея для одного. Ну, можно конечно навертеть чего-либо поверх, но если ты решил делать приложение для телефона, то приложение должно быть простенькое, легкое.

Цитата: Washington
3. С кем это все обсуждается, кто уже участвует?



Обсуждается со всеми у кого есть что сказать.

6
28 сентября 2009 года
George
4.1K / / 05.01.2007
Цитата: Kogrom

Оно предпочтительно, но могут возникнуть трудности (GUI например не всегда одинаково выглядят даже у Java). Поэтому я не ставлю это обязательным требованием.


а по мне, так это тоже неплохая цель для изучения, нет?

Цитата: Kogrom

Мне кажется, что та идея для одного. Ну, можно конечно навертеть чего-либо поверх, но если ты решил делать приложение для телефона, то приложение должно быть простенькое, легкое.


да, пожалуй. хотя конечно я хочу потом сервис для компа написать и сделать синхронизацию.

Цитата: Kogrom

Обсуждается со всеми у кого есть что сказать.


ясно =)

6
28 сентября 2009 года
George
4.1K / / 05.01.2007
поговорив с когромом в привате, я высказал мысль о том, что имеющиеся идеи "узко специализированные". предложил придумать что-то более полезное, практичное и социально-полезное. сужу по себе - мне не интересно писать то, что мне не нужно. (речь о некоммерческих проектах, там стимул - заработать на хлеб насущный).
поэтому в течение пары минут родилась такая идея. раз уж проект в какой то мере под эгидой форума, то предлагаю написать удобную небраузерную читалко-писалку в форум. как это примерно выглядит, можно посмотреть здесь. Там, конечно, форум другой, но идея все равно одна.
87
28 сентября 2009 года
Kogrom
2.7K / / 02.02.2008
Цитата: Washington
поговорив с когромом в привате, я высказал мысль о том, что имеющиеся идеи "узко специализированные". предложил придумать что-то более полезное, практичное и социально-полезное.



Ладно. Опишу подробнее идеи. Хотя, они второстепенны.

1. Редактор анимации. Была у меня прога-плеер, в которой актеры-смайлики разыгрывали пьесы. Итого куча объектов: пьеса, актеры, фон, парики, шапки, мимика. Короче простор для ОО-проектирования. Если делать редактор, то поле деятельности еще шире.

2. Игра. Игру лучше взять простейшую типа многоклеточных крестиков-ноликов или лайнс. Также UAS предлагал сделать какую-то игру для ботов, которые будут программироваться игроками. В любом случае, игра - раздолье для ООП, подходящее применение.

3. Программа регистрации. Этот термин я взял со своей работы. То есть, это прога, которая получает данные от датчиков, записывает их в файл или базу, выводит на график, таблицу и т.д. Эту идею я взял по трем причинам: опять же много объектов, что позволило включить такой пример в книгу Буча, потенциальные участники могут уже применять подобные программы и их идея может заинтересовать, ну и понятно, что мне эти разработки могут пригодиться.

Но не важно, что за проект. Главное, не в том, извлечь выгоду от самого проекта, но от процесса его создания. То есть проект, должен включать кучу объектов, разнообразные взаимодействия объектов. Такой мой критерий выбора.

6
28 сентября 2009 года
George
4.1K / / 05.01.2007
Ну и я уже высказывал свою точку зрения, выскажу ее и здесь. Суть проекта важна ибо лично мне, к примеру, трудиться над неинтересной для меня идеей - неинтересно и неохота. Я сторонник позиции, что обучение должно сопровождаться практикой, причем чтобы эта практика была направлена на достижение некоторых целей, включающих получение конкретного продукта, применимого в определенных сферах деятельности. Ведь в таком случае получается два "плода" деятельности, даже три:
1. Опыт.
2. Знания.
3. Продукт.
В случае написания чего то подходящего для обучения, но в основном для использования бесполезного - мы теряем третий пункт, а значит и КПД.

ps. Вот ведь завернул то...
87
28 сентября 2009 года
Kogrom
2.7K / / 02.02.2008
Цитата: Washington
В случае написания чего то подходящего для обучения, но в основном для использования бесполезного - мы теряем третий пункт, а значит и КПД.



Начну с образного выражения, потом поясню.

Я говорю: пойдем в спортзал и накачаем мышцы.
Ты говоришь: вместо того чтобы бессмысленно гири поднимать лучше бы бабушке натаскали воды в ведрах. И польза и сила.

Но у бабушки водопровод - ей эта помощь не нужна, а таская ведра мы качали мышцы бессистемно и нормального рельефа мышц не вышло.

Пояснение. Можно выделить 3 типа программ: утилиты, программы среднего размера, крупные программы. Есть и другие типы, наверное.

Утилиты подразумевают копание в конкретной технологии (всякие протоколы, API операционных систем и т.п.), которая нигде может не пригодиться больше. Этим может заниматься и новичек почти наравне с бывалым программистом. Вот про них ты и говоришь. Здесь не нужно почти никакого ООА, ООД, ООП и т.д. Необходимость в них тут не очевидна.

Крупные программы - эта та область куда я даже не смотрю пока. Это те же ММОРПГ. Понятно, что этого не осилить. Но в таких программах как раз и применяется ООА, ООД, ООП, всякие рефакторинги, юнит-тестирование и т.д.

Но так как крупная программа не является удачным объектом для учебного проекта, то я смотрю в сторону средних, примеры которых я и привел. Это и осилить проще и есть где навыки проектирования программ прокачать. Плюс к тому - я смогу написать хоть какое-то ТЗ для них, что достаточно важно.

Мне не нужен продукт, который прославит меня среди пользователей, мне нужен хороший тренажер проектировщика программы, на котором я бы научился строить диаграммы UML, проникся смыслом ООП, понял, как применять всякие рефакторинги. Если найдутся люди, которые думают также - то и хорошо. Вместе проще учиться.

Конечно, хорошо бы сочетать полезное с полезным же. Но полезность для пользователя - вещь второстепенная, даже третьестепенная в данном случае.

260
29 сентября 2009 года
Ramon
1.1K / / 16.08.2003
Боюсь, вы получите симулятор стрельбы по уткам.
9
29 сентября 2009 года
Lerkin
3.0K / / 25.03.2003
Цитата: Ramon
Боюсь, вы получите симулятор стрельбы по уткам.


Которые сферические и в вакууме.

6
29 сентября 2009 года
George
4.1K / / 05.01.2007
Цитата: Kogrom
Но у бабушки водопровод - ей эта помощь не нужна, а таская ведра мы качали мышцы бессистемно и нормального рельефа мышц не вышло.


надо найти такую бабушку, у которой водопровода нет.

upd.
я не настаиваю на своих идеях. но идеи когрома не видятся мне какими то особо полезными или нужными чтоли, без обид. =)
поэтому предлагаю чтобы народ подсказал еще что-нибудь. чтобы что-то средненькое, чтобы было на чем поучиться и чтобы конечный продукт можно было использовать во благо человечеству. =)

87
29 сентября 2009 года
Kogrom
2.7K / / 02.02.2008
Цитата: Ramon
Боюсь, вы получите симулятор стрельбы по уткам.


Иначе говоря, я получу модель, которая будет далека от жизни?
Это не так. Даже прошлый абстрактный проект научил меня кое-чему. Например, раньше я не мог представить, как разделить один проект на несколько исполнителей. Теперь представляю. Правда, не каждый проект для этого подходит.

Далее. Как-то Der Meister сказал, что разобраться с замороченными UML-диаграммами ему интереснее, чем решать студенческие задачки. Не знаю, интереснее это или нет, но решаем мы тут только студенческие задачки + тонкости каких-то технологий, протоколов. Поэтому я и ищу проект, в котором можно было бы прокачаться в составлении и усовершенствовании таких диаграмм.

Цитата: Washington
я не настаиваю на своих идеях. но идеи когрома не видятся мне какими то особо полезными или нужными чтоли, без обид. =)


Ну, а мне не кажутся интересными твои. Тоже без обид :)
Но я знаю людей, которым пригодятся мои идеи №1 и №3. Вторую идею я особо не осмысливал, взял ее из-за популярности + было подобное предложение от UAS.

Цитата: Washington
поэтому предлагаю чтобы народ подсказал еще что-нибудь. чтобы что-то средненькое, чтобы было на чем поучиться и чтобы конечный продукт можно было использовать во благо человечеству. =)


народ, человечество... ну их. Было бы это нужно самим участникам проекта. А то Washington развел тут флейм, а сам не собирается участие принимать.

Потому у меня простое предложение: построить эскизы диаграмм компонентов (или классов) для каждого проекта (идеи). Если по диаграмме не будет видно, как разделить проект на несколько человек - то в топку проект. Если диаграммы не будет - то в топку проект.

И потом, зря сосредоточились на проектах. Тут есть некоторые другие опасные моменты. Например, выбранный язык наверняка пугает потенциальных участников. Можно обсудить этот пункт. Или GUI. Например, в IRC Romik предложил использовать web GUI. И это интересно. Хотя, теоретически можно сделать проект с двумя GUI.

Про IDE наверное нет смысла говорить - оно должно влиять на код только косвенно, потому тут каждый может выбрать на свой вкус.

6
29 сентября 2009 года
George
4.1K / / 05.01.2007
Цитата: Kogrom

Ну, а мне не кажутся интересными твои. Тоже без обид :)
Но я знаю людей, которым пригодятся мои идеи №1 и №3. Вторую идею я особо не осмысливал, взял ее из-за популярности + было подобное предложение от UAS.


да я не настаиваю на своих. хотелось бы послушать, что думаю другие. может у кого то найдутся другие идеи, которые стоило бы обсудить.

Цитата: Kogrom

народ, человечество... ну их. Было бы это нужно самим участникам проекта. А то Washington развел тут флейм, а сам не собирается участие принимать.


ну может и приму в каком то виде. кто знает. (сейчас приходится проходить много жизненных квестов, поэтому времени не особо хватает, но все же). но если мне не понравится идея, то конечно участвовать не захочу вообще.

Цитата: Kogrom

Потому у меня простое предложение: построить эскизы диаграмм компонентов (или классов) для каждого проекта (идеи). Если по диаграмме не будет видно, как разделить проект на несколько человек - то в топку проект. Если диаграммы не будет - то в топку проект.


ну а кто будет строить? я для своего проекта точно не смогу - не умею. учиться особо сейчас в этом направлении точно не буду.

Цитата: Kogrom

Про IDE наверное нет смысла говорить - оно должно влиять на код только косвенно, потому тут каждый может выбрать на свой вкус.


кстати я тоже подумал. сделал простенькое окошко с помощью wxWidgets, оно запустилось и в wxGlade, и в Idle Python, и в Netbeans. Так что, похоже, IDE на код почти не влияет.

Насчет веб гуя - хороший способ осваивать питон в его web-ипостаси =)

87
29 сентября 2009 года
Kogrom
2.7K / / 02.02.2008
Цитата: Washington
ну а кто будет строить? я для своего проекта точно не смогу - не умею. учиться особо сейчас в этом направлении точно не буду.


Ну, я же не требую, чтобы они были по правилам UML. Можно делать как у Буча. Или свои правила для диаграмм придумать на ходу. Но тогда придется писать пояснения.

Я не требую, чтобы они были красивыми. Может быть набросок типа того, что находится тут.

Хм. Внезапно я понял, что придется составить список литературы, которая пригодится для проекта, чтобы было понятно, к каким целям я стремлюсь.

29K
29 сентября 2009 года
Ander Skirnir
109 / / 08.06.2009
Мне идея от UAS'a больше всего нравится (я вообщем-то сам давно об этом думал), но я бы с удовольствием поучаствовал и в другой, но дедлайн в неделю - пока что стрёмно, особенно, при абсолютном незнании языка. А еще не хотелось бы зацикливаться на одном только ООП - с ним ведь и другие интересные парадигмы (ФП, МП) довольно хорошо вяжутся.

Кстати, ООП-то будет function-oriented или message-oriented? Я за второй, например.

Вот нагуглил интересную статью:
http://citforum.univ.kiev.ua/programming/python/python8.shtml
87
29 сентября 2009 года
Kogrom
2.7K / / 02.02.2008
Цитата: Ander Skirnir
Мне идея от UAS'a больше всего нравится (я вообщем-то сам давно об этом думал) и я бы с удовольствием поучаствовал, но дедлайн в неделю - пока что стрёмно, особенно, при абсолютном незнании языка.


Уже хорошо. Только эта идея пока самая расплывчатая. Ее я вычислил из следующего сообщения:

Цитата:
А что, если придумать что-то, типа битвы (ну такое давно придумали), только по сети.
Т.е. допустим, выбираем те же шахматы. Каждый пишет свои алгоритмы на любом своём языке. А игра будет типа по сети) Естессно, прога каждая сама должна хранить у себя результаты, игра на честность, конечно.
Понимаю, что крайне натянуто всё, но всё же так намного интересно - ведь тут уже не просто проги пишешь, а уже соревнуешься. Тут уже и оптимизация будет, и т.д.=)
Вообщем, что-то типа такого. Может, если придумаем че толковое, то можно собрать народ, что-то придумать и посоревноваться)


Но как оно будет выглядеть - пока плохо представляю.

Не дедлайн в неделю, а выкладывание кода хотя бы раз в неделю. То есть, другие участники должны видеть, что ты делаешь, чтобы вовремя помочь, что-то подсказать, поправить. Иначе работа в команде теряет смысл.

Цитата: Ander Skirnir
А еще не хотелось бы зацикливаться на одном только ООП - с ним ведь и другие интересные парадигмы (ФП, МП) довольно хорошо вяжутся.


Ну, я зацикливаюсь на том, что изучаю. ФП, МП (модульное?) я не запрещаю, но для меня пока приоритетом является ООП.

29K
29 сентября 2009 года
Ander Skirnir
109 / / 08.06.2009
Цитата:
МП (модульное?)


мета

Цитата:
ФП, МП я не запрещаю


Это радует, а кроме того, ведь локальные решения на других парадигмах негативно могут повлиять только при неправильной инкапсуляции - типа такого что-то.

Слышал, что майкрософт делал нечто подобное. У них там была игрушка с программируемыми роботами, игрок занимался написанием ИИ. Конечно, не на разных языках.

87
29 сентября 2009 года
Kogrom
2.7K / / 02.02.2008
Цитата: Ander Skirnir
Слышал, что майкрософт делал нечто подобное. У них там была игрушка с программируемыми роботами, игрок занимался написанием ИИ. Конечно, не на разных языках.



Нечто подобное:
http://en.wikipedia.org/wiki/Robocode

статью глянул - пока ничего не понял :)

На счет function-oriented или message-oriented не совсем понял терминологию. Но в разных частях программы могут быть применены разные паттерны. Подозреваю, что будет и то и другое.

29K
29 сентября 2009 года
Ander Skirnir
109 / / 08.06.2009
Можно нечто подобное:
Робота-собирателя десантируют на некоторой планете, его задача - добыть какие-то полезные ископаемые. Но ландшафт на планете не ахти какой, а кроме-то, имеются всяческие гейзеры, ямы, газы, разьедающие металл и тп. Информацию о окружающей среде робот получает исключительно визуальную и сам изначально умеет её интерпретировать: имеется field of view, обьекты в котором он осмыслил и оценил расстояние до них. Задача игрока - запрограммировать поведение робота таким образом, чтобы вне зависимости от окружающей среды он нашел и добыл ресурсы и добрался до нужной точки, где его заберут.

Задача, возможно, станет актуальной для человечества в будующем :)

В качестве языка программирования робота проще всего юзать скорее всего сам питон (там же наверняка есть какой-нибудь eval) - а чтобы было удобно, написать на нём тулкит для игрока.

Message-oriented, это всмысле когда методы вызываются посылкой обьектам сообщений, типа как в smalltalk, common-lisp-object-system и objective-c, а function-oriented - это вызовы как в c++, c#, java и тп.
87
29 сентября 2009 года
Kogrom
2.7K / / 02.02.2008
Цитата: Ander Skirnir
Робота-собирателя десантируют на некоторой планете, его задача...


Ну и хорошо. Можно развивать эту тему.
Я буду упрощать условия. Предлагаю игру сделать двумерной, на карте размещать одного робота. В дальнейшем можно будет размещать по несколько роботов на карте, если что-то получится с одним.

Цитата: Ander Skirnir
В качестве языка программирования робота проще всего юзать скорее всего сам питон (там же наверняка есть какой-нибудь eval) - а чтобы было удобно, написать на нём тулкит для игрока.


Есть, но его страшновато использовать в чистом виде :)

Цитата: Ander Skirnir
Message-oriented, это всмысле когда методы вызываются посылкой обьектам сообщений, типа как в smalltalk, common-lisp-object-system и objective-c, а function-oriented - это вызовы как в c++, c#, java и тп.



Так как я программист на C++, то и подходы мои соответствующие будут. Но я поддаюсь переубеждению. Посмотрим.

6
29 сентября 2009 года
George
4.1K / / 05.01.2007
Цитата: Ander Skirnir

В качестве языка программирования робота проще всего юзать скорее всего сам питон (там же наверняка есть какой-нибудь eval) - а чтобы было удобно, написать на нём тулкит для игрока.


нечто саморазвивающееся? при выполнении некой операции, возвращающей положительный результат, анализируется ситуация и генерируется некий код, который модулирует поведение робота в подобных ситуация, записывается куда нибудь, а затем вызывается eval()'ом? =))

Цитата: Ander Skirnir

Message-oriented, это всмысле когда методы вызываются посылкой обьектам сообщений, типа как в smalltalk, common-lisp-object-system и objective-c, а function-oriented - это вызовы как в c++, c#, java и тп.


а чем мессэдж ориентед лучше любимого и родного фанкшн ориентед?

29K
29 сентября 2009 года
Ander Skirnir
109 / / 08.06.2009
Цитата:
Я буду упрощать условия. Предлагаю игру сделать двумерной, на карте размещать одного робота. В дальнейшем можно будет размещать по несколько роботов на карте, если что-то получится с одним.


Да с 3д мы бы совсем запарились :)

Цитата:
нечто саморазвивающееся? при выполнении некой операции, возвращающей положительный результат, анализируется ситуация и генерируется некий код, который модулирует поведение робота в подобных ситуация, записывается куда нибудь, а затем вызывается eval()'ом? =))


Ну это уже от игрока зависит: с таким подходом пространство для фантазии и МП огромно :)

Цитата:
а чем мессэдж ориентед лучше любимого и родного фанкшн ориентед?


Тем, что классы могут просто игнорировать некоторые сообщения, а некоторые - перенаправлять. Ну и гораздо проще отправить сообщение разным обьектам, чем приводить к обобщенному, поддерживающему некий интерфейс и вызывать функцию.

87
29 сентября 2009 года
Kogrom
2.7K / / 02.02.2008
Ладно. Вроде с идеей примерно определились - попробую написать чуть более подробное описание игры для обсуждения. Того же буду ждать от других участников.

Кроме того, составлю примерный список книг, которые я намереваюсь использовать в проекте.
244
29 сентября 2009 года
UAS
2.0K / / 19.07.2006
Хмм, а задача про робота мне нравится. Не слишком сложно, но и не слишком легко (на первый взгляд).
Питон я хоть и не знаю, но поучиться не прочь. Вообщем, чем помочь пока что - точно не знаю. Время у меня вообще распределено по-дурацки, но постараюсь вникнуть в суть дела и хотя бы раз в неделю отписываться=)
Вообщем, я не против поучаствовать. Идея тоже нравится.
87
29 сентября 2009 года
Kogrom
2.7K / / 02.02.2008
Попытался составить приблизительные правила игры.

На карте находится робот и объекты нескольких типов. Карта представляет собой расчерченное на клетки поле. Каждый объект занимает 1 клетку.

Робот имеет 2 ресурса: минералы и время. Минералы он находит на карте, время является мерилом эффективности робота. Время измеряется в ходах. Чем меньше ходов сделает робот для сбора всех (или определенного количества) минералов на карте, тем более эффективен он для этой карты.

Объекты бывают трех основных типов: добавляющие минералы, отнимающие время и пустые. При этом, пустые и добавляющие минералы исчезают, когда робот занимает их клетку, отнимающие время — не исчезают.

Отнимающие время делятся на 2 типа: стены и ямы. Стена не пропускает робота, отнимает ход, если робот пытается занять ее поле. Все стены одинаковы. Карта огорожена со всех сторон стенами.

Яма отнимает у робота несколько ходов, если робот наступает на нее. Типы ям отличаются тем, сколько ходов они отнимают у робота. Иногда роботу выгоднее пройтись по яме, чем обходить её.

Каждый объект имеет свое имя и свойства. Все объекты с одинаковыми именами имеют одинаковые свойства. Робот различает объекты по именам, но вначале игры он не знает свойств объектов.

Пример: объект с именем А — стена, объект с именем Б — минерал, В и Г — пустые объекты, Д - яма отнимающая 3 хода, Е, Ж — ямы, отнимающая 5 ходов и т. д.

Робот видит вокруг себя только на одну клетку. Но он может помнить, пройденную зону (если это предусмотрит программист). Это может быть полезно, так как объекты не двигаются.

Робот имеет определенное направление. Робот должен потратить ход, чтобы повернуть вправо или влево. Робот должен потратить ход, чтобы переместиться на одну клетку вперед. Робот может потратить ход, чтобы выяснить свойства объекта, стоящего перед ним.
244
29 сентября 2009 года
UAS
2.0K / / 19.07.2006
Хотя помимо этого я горел желанием написать "модульное приложение", так как опыта в этом мало. Т.е. взять придумать простейшее приложение, придумать к нему API и разрабатывать модули. Т.е. что-то типа foobar, miranda. Имхо, это намного практичней и полезней будет, чем все остальное. Тут как раз и куча советов будет, и подходов и т.д.
9
29 сентября 2009 года
Lerkin
3.0K / / 25.03.2003
Все спросить стесняюсь - а вы здесь о чем, вообще? Чего писать-то думаете? Не, я не ради лулзов, просто каждый о своём, и цели ваших посиделок как-то смещаются и размазываются, и вектора приложения усилий не обозначено. Каким-то очередным codenet fail'ом отдаёт, не находите?
87
29 сентября 2009 года
Kogrom
2.7K / / 02.02.2008
Цитата: Lerkin
Все спросить стесняюсь - а вы здесь о чем, вообще? Чего писать-то думаете?


Так всё в первом посте расписано, а потом объяснено еще раз. Почти тоже самое, что и в первом учебном проекте. Но тут я хотел исправить некоторые организационные и технические ошибки.

Организационные: недоступность кода некоторых участников для других.

Технические: язык не очень подходящий для учебного проекта. Например, в прошлый раз я спотыкнулся на кривых инструментах для Unit-тестирования в C++. Да и отсутствие сборщика мусора немного отвлекает от понимания процесса. Структура с файлами-хедерами тоже добавляет ненужные детали. И т.д. В общем, C++ хорош для "настоящих" проектов, но не очень для учебных.

Цитата: Lerkin
Не, я не ради лулзов, просто каждый о своём, и цели ваших посиделок как-то смещаются и размазываются, и вектора приложения усилий не обозначено. Каким-то очередным codenet fail'ом отдаёт, не находите?



Ну, в прошлый раз все-таки вышло что-то, так как никто не предлагал сделать "ММОРПГ" (утрирую немного), не предлагал свои прожекты. Тупо взяли недописанное ТЗ кота, дописали и стали реализовывать. Сейчас нету такого ТЗ вот и приходится что-то выдумывать.

Но про codenet fail ещё рано говорить.

29K
30 сентября 2009 года
Ander Skirnir
109 / / 08.06.2009
Сегодня нашел две статейки, которые меня очень-очень обрадовали и повысили благосклонность к изучению питона (:

http://www.iso.ru/journal/articles/253.html
http://www.iso.ru/journal/articles/294.html

Вот еще нагуглил учебник:
Учебник Python 3.1

И еще: возможно, следует использовать какие-то другие средства коммуникации - кроме форума? У меня, например, созрело пару вопросов по питону, на которые пока не получается нагуглить ответ.
260
30 сентября 2009 года
Ramon
1.1K / / 16.08.2003
Цитата: Ander Skirnir
Сегодня нашел две статейки, которые меня очень-очень обрадовали и повысили благосклонность к изучению питона (:

http://www.iso.ru/journal/articles/253.html
http://www.iso.ru/journal/articles/294.html

Вот еще нагуглил учебник:
Учебник Python 3.1



Особого внимания заслуживают ученые степени авторов первой статьи да и второй тоже.

Цитата: Kogrom

Технические: язык не очень подходящий для учебного проекта. Например, в прошлый раз я спотыкнулся на кривых инструментах для Unit-тестирования в C++. Да и отсутствие сборщика мусора немного отвлекает от понимания процесса. Структура с файлами-хедерами тоже добавляет ненужные детали. И т.д. В общем, C++ хорош для "настоящих" проектов, но не очень для учебных.



А вот здесь симулятор стрельбы по уткам находит свое подтверждение.

5
30 сентября 2009 года
hardcase
4.5K / / 09.08.2005
Цитата: Ramon
Особого внимания заслуживают ученые степени авторов первой статьи да и второй тоже.


Да там переводчик - дурак. Ph.D., по-нашему, - это доктор наук.

Цитата: Ander Skirnir
Сегодня нашел две статейки, которые меня очень-очень обрадовали и повысили благосклонность к изучению питона (:

http://www.iso.ru/journal/articles/253.html
http://www.iso.ru/journal/articles/294.html

Интересненькие ссылки, правда изложение темы чудовищно запутано.

260
30 сентября 2009 года
Ramon
1.1K / / 16.08.2003
Цитата: hardcase
Да там переводчик - дурак. Ph.D., по-нашему, - это доктор наук.



David Mertz

29K
30 сентября 2009 года
Ander Skirnir
109 / / 08.06.2009
Ramon, т.е. Вы считаете, что философ по специальности не может изучать вопросы программирования и посвящать им свои труды? Если так, то почему?
6
30 сентября 2009 года
George
4.1K / / 05.01.2007
Цитата: Ander Skirnir
Ramon, т.е. Вы считаете, что философ по специальности не может изучать вопросы программирования и посвящать им свои труды? Если так, то почему?


+1. у меня например вообще музыкальное образование, но программировать оно не мешает. Разве что под оцтойную музыку. =)))

297
30 сентября 2009 года
koodeer
1.2K / / 02.05.2009
Меня несколько удивляют оппоненты Kogrom'а. Такое ощущение, что они все начинали освоение новых языков/технологий/платформ/IDE сразу с создания крупных проектов. Сдаётся мне, что вначале был всё же Hello world. И лишь затем, после получения некоторых знаний и накопления опыта, после создания симуляторов стрельбы по уткам и проектов, КПД которых равен нулю, можно начинать писать искусственный интеллект...
6
30 сентября 2009 года
George
4.1K / / 05.01.2007
где ты видишь оппонентов? критика, если что, полезная штука. хотя бы в том, что учишься ее воспринимать. это как минимум. как максимум - взгляд со стороны.
87
01 октября 2009 года
Kogrom
2.7K / / 02.02.2008
Цитата: Ander Skirnir
Вот еще нагуглил учебник: Python 3.1


Я за то, чтобы использовать Python 2.6. Дело в том, что вторая и третья ветки Питона (именно ветки, а не версии) не имеют совместимости. Но для второй ветки есть куча библиотек (в том числе и для GUI), книг, документации, исходников. Многое ПО, используемое для разработки на Питоне (IDE например), которые сами сделаны на Питоне также не будут работать с третьей веткой.

Я не сильно отклонюсь от правды, если скажу, что третья ветка пока экспериментальна.

Цитата: Ander Skirnir
И еще: возможно, следует использовать какие-то другие средства коммуникации - кроме форума? У меня, например, созрело пару вопросов по питону, на которые пока не получается нагуглить ответ.



Конечно. Новый раздел ты уже нашел. Еще есть IRC, ICQ. Washington предлагал сделать канал на Джаббере.

Но перейду к делу. Вроде бы, определились что делаем: игру с роботом. Так? Надеюсь больше споров не будет.

По науке, следующим пунктом должно быть написание наброска ТЗ. Затем должен быть этап создания эскизов диаграмм. И только потом надо приступать к коду. Я понимаю, что некоторым охота сразу попробовать разные трюки и хитрости в Питоне, но это можно сделать в маленьких задачках. Здесь же лучше делать всё по порядку.

Так вот, я предлагаю обсудить ТЗ. Кое-какие наброски я уже выкладывал в теме, но пока они остались без комментариев.

9
01 октября 2009 года
Lerkin
3.0K / / 25.03.2003
Парняги. Пока не будет лида - не выйдет и проекта. Гарантирую.

Korgom, если хочешь вести подобный проект при данных условиях, то каждое своё движение обсуждать, мягко говоря, не надо. Подобного рода затеи, заканчиваются либо до начала написания ТЗ (никак обсуждения не закончим), либо в процессе написания ТЗ (сплошные обсуждения взамен работы). Дальнейшая работа, дойди она даже до кодинга, будет представлять собой - разброд и шатание.

У вас получается, что рабочие должны сами себе работу придумывать, и потом её работать. Оторванный от реальности, здравого смысла и человеческой натуры шаблон.

P.S. Тема интересная. Я поэтому и влезаю, что хочется увидеть развитие хоть какое-то - хоть чего-нибудь.
87
01 октября 2009 года
Kogrom
2.7K / / 02.02.2008
Цитата: Lerkin
Korgom, если хочешь вести подобный проект при данных условиях, то каждое своё движение обсуждать, мягко говоря, не надо. Подобного рода затеи, заканчиваются либо до начала написания ТЗ (никак обсуждения не закончим), либо в процессе написания ТЗ (сплошные обсуждения взамен работы). Дальнейшая работа, дойди она даже до кодинга, будет представлять собой - разброд и шатание.



Первое критическое сообщение в этой теме, которое я признаю логичным :)

Однако, думаю что можно попытаться диктатуру лидера заменить на диктатуру регламента, правил. Ну или сочетать их. То есть до итерации составления требований надо составить сами правила разработки.

Постараюсь составить правила на основе методик типа:
http://ru.wikipedia.org/wiki/Итеративная_разработка
http://ru.wikipedia.org/wiki/Rational_Unified_Process

Ну и эту книгу возьму в помощь:
Крэг Ларман, Применение UML 2.0 и шаблонов проектирования.

Рекомендую и другим участникам её посмотреть. Там помимо прочего рассказывается про итеративный процесс разработки.

Время на итерацию составления и обсуждения правил - до 05.10.2009.
Если у кого-то есть опыт работы по подобным методикам прошу поделиться рекомендациями.

87
01 октября 2009 года
Kogrom
2.7K / / 02.02.2008
Составил список литературы, которую я собираюсь использовать при разработке.

Рекомендуемая литература:

1. Мартин Фаулер, UML. Основы.
2. Крэг Ларман, Применение UML 2.0 и шаблонов проектирования.
3. Кент Бэк. Разработка через тестирование (TDD).
4. Мартин Фаулер, Рефакторинг.
5. Марк Лутц, Изучаем Python.

Дополнительная литература:

1. Э. Гамма, Р. Хелм, Р. Джонсон, Дж. Влиссидес, Паттерны проектирования.
2. Кент Бэк, Экстремальное программирование.
3. Гради Буч, Объектно-ориентированный анализ и проектирование.
4. Фредерик Брукс, Мифический человеко-месяц.

В принципе, книгу про паттерны можно перенести в основной список.

Остальным участникам (если они не разбегутся после моих последних сообщений) рекомендую хотя бы ознакомиться с UML, TDD и основами рефакторинга. Ибо эти средства как раз в крупных (и средних) проектах интересны.
29K
01 октября 2009 года
Ander Skirnir
109 / / 08.06.2009
А может IronPython?
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог