Очень нравится язык, хотелось бы написать что-нибудь интересное и элегантно-реализующееся именно на нем. Какую тему можете посоветовать на диплом?
Послесловие: Времени не так, чтобы уж сильно много (работа отнимает львиную часть), поэтому слишком мозголомные вещи, боюсь, просто не успею реализовать. В принципе есть еще полгода.. но не хочется доводить до греха.
А>Очень нравится язык, хотелось бы написать что-нибудь интересное и элегантно-реализующееся именно на нем. Какую тему можете посоветовать на диплом?
Нужно чуть больше информации о специальности, какие темы дипломов проходные для вашей кафедры, а какие нет.
Из полезного и доступного -- на сайте языка описан ряд открытых задач, которые вполне могут быть решены в рамках диплома, и при этом окажутся очень даже нужными. Например реализация traits/mixins, с каким-либо красивым алгоритмом устранения конфликтов ( http://nemerle.org/Traits ) -- информации по ним доступно на несколько дипломов, и примеры реализаций для других языков, и даже для C# описаны. Грамотная реализация имеет все шансы стать частью языка, что на защите может быть ещё одним плюсом.
Ещё можно рассмотреть красивое решение задачи логгирования -- например в виде макроатрибута на весь класс и спец-аттрибуты на отдельные методы и свойства по типу Searializable/NonSerialized -- для управления логгированием, детализацией и т.п. Вплоть до создания подробных крэшдампов и средства для их анализа, если на дипломе обязательно показать приложение с UI.
Re[2]: Диплом на Nemerle?
От:
Аноним
Дата:
28.10.07 09:53
Оценка:
Здравствуйте, hi_octane, Вы писали:
_>Из полезного и доступного -- на сайте языка описан ряд открытых задач, которые вполне могут быть решены в рамках диплома, и при этом окажутся очень даже нужными. Например реализация traits/mixins, с каким-либо красивым алгоритмом устранения конфликтов ( http://nemerle.org/Traits ) -- информации по ним доступно на несколько дипломов, и примеры реализаций для других языков, и даже для C# описаны. Грамотная реализация имеет все шансы стать частью языка, что на защите может быть ещё одним плюсом.
Заинтересовало. У меня еще есть около двух недель до принятия окончательного решения, но для себя я, похоже, уже все решил. Тема, с одной стороны довольно необычная (поспрашивал у знакомых — никто об traits не слыхал), а с другой позволяет управлять "глубиной" решения (надеюсь до этого не дойдет, но в случае отставания по срокам, можно будет упростить исходную задачу).
Здравствуйте, <Аноним>, Вы писали:
А>Заинтересовало. У меня еще есть около двух недель до принятия окончательного решения, но для себя я, похоже, уже все решил. Тема, с одной стороны довольно необычная (поспрашивал у знакомых — никто об traits не слыхал), а с другой позволяет управлять "глубиной" решения (надеюсь до этого не дойдет, но в случае отставания по срокам, можно будет упростить исходную задачу).
Только не забудь про "экономическую часть" диплома. Не каждой кафедре экономики удается объяснить, что такое бесплатное ПО
Здравствуйте, <Аноним>, Вы писали:
А>Послесловие: Времени не так, чтобы уж сильно много (работа отнимает львиную часть), поэтому слишком мозголомные вещи, боюсь, просто не успею реализовать. В принципе есть еще полгода.. но не хочется доводить до греха.
На мой взгляд интересной темой является "Реализация паттернов проектирования средствами метапрограммирования". Естественно, что "средства метапрограммирования" — это Немерле и его макросистема. Многие паттерны уже реализованы, так что останется только:
1. Объяснить, что без МП паттерны приходится реализовывать копипэстом (обосновать почему это так, в принципе это уже сделано умными людьми).
2. Описать принципы.
3. Привести реализации и объяснит их (они уже есть, можно только еще одни-два добавить, чтобы в плагиате не обвинили).
4. Продемонстрировать поднятие КПД программистов при использовании макросов автоматизирующих использование паттернов путем приведения рукописного кода и его аналога с использованием макросов (там все будет очевидно, кода становится меньше на порядки).
5. Ну, и спеть про светлое будущее.
6. Да! Надо не забыть объяснить, что применение макросов подобного рода совершенно безопастно и продемонстриовать что реализации паттернов могут общаться с прикладным программистом помогая ему устранять ошибки и непонимаение.
... << RSDN@Home 1.2.0 alpha rev. 637>>
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Здравствуйте, <Аноним>, Вы писали:
А>Заинтересовало. У меня еще есть около двух недель до принятия окончательного решения, но для себя я, похоже, уже все решил. Тема, с одной стороны довольно необычная (поспрашивал у знакомых — никто об traits не слыхал), а с другой позволяет управлять "глубиной" решения (надеюсь до этого не дойдет, но в случае отставания по срокам, можно будет упростить исходную задачу).
Тема хорошая, но не простая. Если сделаешь, что будет тебе не только диплом, но и огромное спасибо от многих программистов. В прочем, я уже сомневаюсь, что эмуляция множественного наследования так уж необходима. Так что это нужно будет отдельно обосновать на более-менее реальных примерах.
... << RSDN@Home 1.2.0 alpha rev. 637>>
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Здравствуйте, Аноним, Вы писали:
А>Заинтересовало. У меня еще есть около двух недель до принятия окончательного решения, но для себя я, похоже, уже все решил. Тема, с одной стороны довольно необычная (поспрашивал у знакомых — никто об traits не слыхал), а с другой позволяет управлять "глубиной" решения (надеюсь до этого не дойдет, но в случае отставания по срокам, можно будет упростить исходную задачу).
С писаниной тебе вряд ли кто-то помогать будет, а вот с кодом — на этом форуме всегда подскажут и помогут. Так что все в твоих руках
Превратим окружающую нас среду в воскресенье.
Re[4]: Диплом на Nemerle?
От:
Аноним
Дата:
30.10.07 14:49
Оценка:
Здравствуйте, VladD2, Вы писали:
VD>Здравствуйте, <Аноним>, Вы писали:
VD>Тема хорошая, но не простая. Если сделаешь, что будет тебе не только диплом, но и огромное спасибо от многих программистов. В прочем, я уже сомневаюсь, что эмуляция множественного наследования так уж необходима. Так что это нужно будет отдельно обосновать на более-менее реальных примерах.
. Зато сама по себе, задача, выглядит солиднее, т.к. traits — вещь неизвестная (я имею ввиду себя и тех людей, которые будут все это оценивать), а DP все-таки постоянно на слуху.
Насчет паттернов сам подумывал, но тут сразу возникает резонный вопрос, а в каком объеме их реализовывать? Если тупо писать все, что описано в GoF, то это будет многовато. А если реализовывать выборочно — встает вопрос — какие брать и почему (потом еще объяснять, почему взял именно эти и почему сделал не все, коль уж взялся).
Здравствуйте, Аноним, Вы писали:
А>Насчет паттернов сам подумывал, но тут сразу возникает резонный вопрос, а в каком объеме их реализовывать? Если тупо писать все, что описано в GoF, то это будет многовато.
Хочу тебя обрадовать/огорчить (нужное подчеркнуть), но все паттерны GoF реализовать ну при всем желании не получится. Во-первых, потому что многие реализовывать смысла нет, например Factory Method, Iterator или Observer. Во-вторых, часть паттернов уже реализованы. Ну а в-третьих, часть паттернов с помощью макросов реализовать и не получится. Например, Builder или Flyweight, как тут могут помочь макросы ума не приложу. С остальными структурными паттернами еще можно поколдовать.
А>А если реализовывать выборочно — встает вопрос — какие брать и почему (потом еще объяснять, почему взял именно эти и почему сделал не все, коль уж взялся).
Я бы на твоем месте сделал так: брал бы по очереди все паттерны и старался бы понять, помогут ли в каждом конкретном паттерне макросы. Ответ на вопрос "почему сделал не все" придут сами собой, главное их вовремя зафиксировать
А те, что сделать возможно, делай! Начать бы посоветовал с просмотра всех паттерны, которые уже реализованы. За одно и код ревью устроить с пристрастием. Разобраться, каким же именно является паттерн, который известен на сайте nemerle.org по именем Aggregation (Composite), ибо композитом он уж точно не является
А>В общем.. я весь в раздумьях..
. Зато сама по себе, задача, выглядит солиднее, т.к. traits — вещь неизвестная (я имею ввиду себя и тех людей, которые будут все это оценивать), а DP все-таки постоянно на слуху.
Спорно. Множественное наследование (МН) и основанные на нем паттерны известны очень широко. А traits через МН описывается на раз. Так что я бы сказал, что обе задачи интересны.
А>Насчет паттернов сам подумывал, но тут сразу возникает резонный вопрос, а в каком объеме их реализовывать? Если тупо писать все, что описано в GoF, то это будет многовато.
Их там не так уж и много. Да и не нужно все реализовывать. Важно продемонсрировать, что МП (метапрограммирование) позволяет их реализовать в приципе. Ну, и обосновать от этого приемущества. В принципе — это уже было сделано Александреску в его дисскуссиях на С++-ных форумах и в его книге.
А> А если реализовывать выборочно — встает вопрос — какие брать и почему (потом еще объяснять, почему взял именно эти и почему сделал не все, коль уж взялся).
Да, по фигу в общем-то. Можно взять самые объемные чтобы был хороший психологический эффект от уменшения объема работ.
... << RSDN@Home 1.2.0 alpha rev. 637>>
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Строитель точно реализуется макросами. Точнее автоматизируется его реализация.
В прочем, важной частью работы как раз было бы обяснение сказанного (что что-то уже реализовано другими средствами, что-то невозможно реализовать (и почему))... обосновать что важно в реализации. В этом и заключается работа.
ie>Я бы на твоем месте сделал так: брал бы по очереди все паттерны и старался бы понять, помогут ли в каждом конкретном паттерне макросы. Ответ на вопрос "почему сделал не все" придут сами собой, главное их вовремя зафиксировать
+1
... << RSDN@Home 1.2.0 alpha rev. 637>>
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.