Какое приложение я должен разработать для изучения правильных понятий программирования? - PullRequest
4 голосов
/ 30 мая 2009

Я работаю программистом ERP, в основном с MS SQL и некоторым языком программирования сценариев.

Я также написал несколько простых проектов на C # (веб-приложение для нашей компании и простой сервис Windows), и мне он очень нравится, так что моя следующая работа, надеюсь, будет в среде .NET.

Теперь я изучаю C # из книги Wrox и прошел все главы по основам. Это все хорошо и приятно, но, на мой взгляд, лучший способ выучить язык - это реальный проект. Итак, мой вопрос: какое приложение я должен написать, чтобы я мог использовать все причудливые концепции, такие как наследование, делегаты, обобщения, рефлексия, LINQ, ... Было бы хорошо, если бы оно также подключалось к SQL Server .

Я думал о системе управления личными расходами или системе планирования. Есть другие идеи?

Ответы [ 9 ]

3 голосов
/ 30 мая 2009

Правило номер один в таких проектах: Это должно быть забавно или что-то, от чего вы ожидаете получить прибыль.

Когда я был в том же месте, что и вы (и я имею в виду то же самое ... C # ... WROX book ...), я выбрал движок текстовых приключенческих игр.
В нем есть все, что вы описали выше, и что еще важнее, я весело писал его, а потом видел, как люди играют в него.

Так что, на самом деле не важно, что вы выбираете, если вам это нравится (и его объем достаточно велик).

2 голосов
/ 31 мая 2009

Поцарапайте свой личный зуд ...

2 голосов
/ 30 мая 2009

Любое хорошо разработанное приложение может использовать любую или все эти концепции. Книги по конкретному языку имеют тенденцию фокусироваться исключительно на деталях языка (по уважительной причине) и, как правило, пренебрегать основными принципами дизайна. Другим важным моментом является то, что делегаты, дженерики, рефлексия и т. Д. Имеют свое место, но их не следует реализовывать в приложении просто «потому что». Это может вызвать ненужную сложность.

Все это говорит, выберите проект, который вас интересует. Даже лучше, то, что вы на самом деле хотели бы использовать. Затем, прежде чем даже писать код, подумайте о том, как вы должны структурировать приложение так, чтобы потом было легко его изменить и добавить функции. Если вы помещаете весь код на страницу формы / кода, вы, вероятно, делаете что-то не так.

Потратьте некоторое время на изучение шаблонов проектирования . Это «лучшие практики» организации кода, которые развивались с течением времени. Не нужно изобретать велосипед.

Надеюсь, это поможет.

1 голос
/ 31 мая 2009

Спасибо за ответы, благодаря вашему вдохновению я нашел тему для своего проекта: -)

Это ЕСТЬ для борделя. Мы ведем список наших клиентов, проституток, комнат, доступных услуг, историй работы, цен, ...

Теперь я создал все таблицы в SQL (с первичными, внешними ключами и индексами), каков следующий шаг? Должен ли я для каждой таблицы в SQL создать свой собственный класс в C #, а затем добавить к нему методы? А затем продолжить построение моей Программы с этой базы? Или я должен использовать другой подход ...?

Спасибо

1 голос
/ 30 мая 2009

Если вы хотите попробовать все эти «причудливые концепции», лучше создайте проект, который вообще не отражает ничего, что вы могли бы сделать на работе. Например. написать игру. Если вы создаете небольшое приложение CRUD, но каким-то образом можете использовать наследование, обобщенные элементы, делегаты и т. Д., Скорее всего, ваша программа намного сложнее, чем должна. В следующий раз, когда вы будете делать что-то подобное на работе, у вас может возникнуть соблазн сделать то же самое. Что было бы очень плохой идеей. (Поцелуй принцип)

1 голос
/ 30 мая 2009

Я бы выбрал какое-то простое приложение CRUD, которое будет тренировать ваши навыки работы с базами данных (и даст вам возможность использовать поставщика LINQ для вашей базы данных), но, возможно, не слишком просто; то есть более одной таблицы.

В данной проблеме нет ничего, что сделало бы ее по сути лучше учиться. Вероятно, хорошей идеей будет придерживаться домена, который вы можете легко разработать и смоделировать, чтобы убрать этот аспект из задачи. Вы можете посмотреть на что-то «большее», чем просто операции доступа к данным; возможно, что-то, связанное с графикой или другой обработкой данных, что даст вам возможность изучить какой-то другой API.

Ваши предложения (управление расходами, планировщик) кажутся мне достаточно хорошими.

0 голосов
/ 31 мая 2009

Вы можете написать движок, который поддерживает игры в стиле приключений - ничего особенного, но я считаю, что это хороший проект для начинающих, так как вы можете работать с большим количеством ОО. Вы могли бы также сделать базовый медиаплеер, хотя я не вижу, чтобы он был настолько хорош для понимания основ языка. Вы даже можете получить XNA Framework и попробовать написать простую игру!

0 голосов
/ 31 мая 2009

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

-JFV

0 голосов
/ 30 мая 2009

Перейти на некоторые базовые приложения CRUD - Система управления видео, Система регистрации студентов, Система инвентаризации зоомагазинов и т. Д ...

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...