Планирование проекта программирования на примере (C # или C ++) - PullRequest
9 голосов
/ 17 марта 2010

Я на последнем курсе бакалавриата, и я озадачен отсутствием примера в крупном проекте c ++ и c # в моем университете. Все мини-проекты и задания основаны на текстовой базе данных, которая является настолько неэффективной, а также на дисплее консоли и командах, что разочаровывает.

Я хочу разработать полный прототип корпоративного программного обеспечения, которое занимается инвентаризацией, продажами, маркетингом и т. Д. Все, что вы обычно найдете в SAP. Я благодарен, если кто-нибудь из вас может направить меня к книге, статье или образцу программы.

Некоторые вопросы:

  1. Как спланировать этот вид программирования? должен ли я использовать концепцию 1 объекта (такого как инвентарь), иметь свой собственный процесс и программу и иметь интегратора для всей программы, или я должен интегрировать его в 1 большую программу?

  2. Как построить и обратиться к базе данных? Я немного разбираюсь в базе данных и знаю SQL, но никогда раньше не обращался к базе данных в программе. База данных является таблицей, и как вы предполагаете представлять таблицу в режиме ООП?

  3. Для типа разработки, который лучше PHP и C ++ или C # и ASP.NET? Я планирую использовать веб-интерфейс для настройки формы и информации, но использую фоновую программу для обработки вычислений. .NET очень сильно интегрирован, и кодирование должно быть намного быстрее, но я действительно интересуюсь производительностью по сравнению с пакетом PHP и C ++

спасибо за информацию

Ответы [ 6 ]

8 голосов
/ 17 марта 2010

Это может не отвечать на ваш вопрос напрямую, но я подумал, что это может помочь вам начать каким-то образом. Итак, вот оно: я бы сказал: " продумайте процесс ". Это значит, продумать процесс разработки программного обеспечения:

  • Сбор требований
    • Определите и определите проблему.
    • Получите как можно больше информации / фактов. (включите зеленый свет, подумайте обо всем, что вы хотите включить в свое программное обеспечение)
    • Придумайте базовый уровень (включите красные огни, что вам действительно нужно? Минимальная функциональность, которую ваше программное обеспечение «должно иметь» - без нее жить не может)
  • Анализ
    • Знаете, чего вы не знаете, каковы недостающие факты?
    • Оценка вашей информации или ее отсутствие / надежность источника информации.
    • Приведите факты, которые вы не знаете.
    • Сформируйте предположение, мнение или возможные решения.
    • Рассмотрите альтернативы и последствия каждого решения.
    • Сформировать план действий.
    • Определите плюсы и минусы технологии.
    • Определите технологию
    • Comeup с функциональными характеристиками.
  • Исследование
    • Изучите материал, который вы хотели бы знать (лучшая база данных, ORM, методы проектирования, примеры кода - соберите все, прочитайте о системах инвентаризации, которые уже существуют)
  • Дизайн
  • Разработка
  • Test
Подготовка плана развертывания Выпустить продукт Сбор отзывов пользователей Анализ отзывов пользователей Планирование предметов в следующем выпуске. Повторите шаги

И наслаждайтесь!

8 голосов
/ 17 марта 2010

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

1) Похоже, вы хорошо понимаете основные компоненты вашего целевого приложения. Как разработчик .net я собирал сборки, которые соответствовали бы широким функциональным областям (не уверен, каков эквивалент в PHP), и затем вы могли бы использовать эти сборки вместе как одно большое приложение или отдельно, как требовалось. Маловероятно, что вы сделаете это правильно с первого раза, поэтому постройте его так, как он чувствует себя правильно, а затем проведите некоторый беспощадный рефакторинг, чтобы улучшить его, как только вы справитесь с проблемой.

2) Вся эта область покрыта объектно-реляционным сопоставлением - ORM, NHibernate - лучший из множества в мире .Net. Кстати, если вы узнаете, что будете намного впереди игры, наступит время выпуска / работы. Сырой sql так в последнее десятилетие. Я полагаю, вы знаете, что Sql Server Express можно загрузить бесплатно?

3) Для разработки используйте языки / среду, в которых вы чувствуете себя наиболее комфортно. Я предпочитаю .net, а встроенное кодирование выполняется намного быстрее. Производительность определенно достаточно хорошая, особенно с учетом того, что это учебный проект - SO работает на .Net, и он довольно хорошо поддерживает миллионы пользователей.

Наслаждайтесь

0 голосов
/ 27 апреля 2011

Как постоянный PHP-разработчик, PHP - отстой! ASP.net в порядке (ммм ... нет, это тоже отстой), но он блокирует вас в проприетарные лицензии

Если вы начинаете с нуля, перейдите на node.js. Это c ++ и серверный JavaScript. Да, это новое, но у него есть техническое обещание. Через несколько лет это станет более распространенным явлением.

И если вы беспокоитесь о производительности, не надо. Javascript в V8 очень быстро.

http://shootout.alioth.debian.org/u32/which-programming-languages-are-fastest.php

Вот несколько ссылок на node.js, с которых можно начать:

http://www.delicious.com/homer6/nodejs

Наслаждайтесь.

0 голосов
/ 17 марта 2010

Вы студент университета. А вы говорите о полной системе инвентаризации. Я предлагаю сначала создать приложение для блога со всеми лучшими практиками (например, blogengine), а затем перейти на сайты электронной коммерции (nopcommerce, dotcommerce). А потом делай что хочешь. Это обычная проблема для таких студентов, как вы, когда вы прыгаете выше, не создавая никаких простых проектов.

0 голосов
/ 17 марта 2010

Ваш вопрос в значительной степени охватывает весь спектр планирования проекта; можно написать целый тезис (+:

Имейте в виду, что ваша команда и ваш преподавательский состав хотят от проекта.

1) Модульный мой выбор. Это заставит вас обращаться к приложению по одному модулю за раз и держать вас в фокусе, но это зависит от

  • Знакомство вашей команды с предпочтительным / рекомендуемым языком для этого проекта.
  • Время в руке Помните, что модульность означает, что вам обязательно придется предусмотреть интеграцию модулей.

2) C ++ или C #? Все, что предлагает больше опыта обучения. Мой собственный опыт работы с обеими упомянутыми технологиями ограничен, но я помню, что раньше была библиотека шаблонов баз данных (DTL). C #, с другой стороны, вероятно, будет быстрее развиваться. Я могу ошибаться. В сети доступно любое количество бесплатных движков СУБД. Если назначение явно не рекомендует использовать текст, выберите один из них.

3) Я согласен с Бруксом там наверху ^^^

Удачи!

0 голосов
/ 17 марта 2010

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

В ответ на ваши конкретные вопросы, однако:

1.) Делать вещи по модульному принципу. Это означает, что у вас есть что-то, что вы можете протестировать и работать с ним, как только закончите работу с первым модулем. Это особенно важно, когда вы учитесь, потому что (а) у вас, вероятно, не будет времени, чтобы фактически закончить все это, (б) вы многому научитесь, написав первый бит, который вы захотите применить в будущем биты, а затем вы, вероятно, захотите переписать первый бит, и (c) вы узнаете еще больше из , используя первый бит.

2.) Существует множество мнений по этому вопросу, а также множество статей и книг в Интернете. Я не могу ответить на это в ответе здесь (за исключением того, что в некоторых случаях попытка представить его ООП-способом является неправильной парадигмой программирования - будьте осторожны, чтобы не слишком ограничивать ответ заданным вопросом!); правильный ответ - найти вещи для чтения и провести несколько дней за их чтением.

3.) Вас не волнует такая проблема производительности. Успешные программы были написаны в обеих формах. Вы заботитесь о том, что научит вас больше всего, и с чем вам удобно работать. Либо один должен быть в порядке. Вы, вероятно, найдете больше частей с открытым исходным кодом для просмотра с помощью PHP и C ++.

...