Вопрос

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

Спасибо

Это было полезно?

Решение

У Мартина Фаулера Архитектура корпоративного приложения это отличная книга по общим шаблонам, которые вы увидите во многих клиент-серверных приложениях.

Еще одна книга, посвященная размышлениям об объектно-ориентированных задачах, принадлежит Эрику Эвану Проектирование, ориентированное на предметную область:Преодоление сложности в самом сердце программного обеспечения

Другие советы

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

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

  • Жемчужины программирования Джон Бентли представляет несколько прекрасных примеров дизайн в малом.Это увлекательное чтение, в нем много классических историй.

  • Среда программирования Unix автор : Керниган и Пайк представляют одна из величайших философий разработки программного обеспечения из 20-го века.По-прежнему требует прочтения спустя почти 25 лет.

  • Программные средства на языке Pascal является более узким и глубоким, но многое расскажет вам о специфике создание программных средств и философия дизайна.

  • Абстракция и спецификация при разработке программ Барбара Лисков и Джон Гуттаг научат вас, как разрабатывайте отдельные модули таким образом, чтобы они могли сочетаться с другими модулями создавать великие библиотеки.Она вышла из печати, но, возможно, есть в вашей местной университетской библиотеке.

  • Интерфейсы и реализации языка Си подарки очень хорошо оформленная библиотека это дает программистам на C абстракции, встречающиеся в языках гораздо более высокого уровня.

  • Наконец-то, Разработка, основанная на тестировании я научу тебя как сформулировать и разработать дизайн через то, что имеет значение:что на самом деле делает ваше программное обеспечение.

Я многому научился у Композитный/Структурированный Дизайн автор: Гленфорд Майерс, но это немного менее непосредственно касается тем, о которых вы спрашивали.В нем говорится в первую очередь о хорошие и плохие способы, которыми модули могут быть взаимозависимы.

Я не был в восторге ни от одной из недавних книг, настолько, что всерьез подумываю о написании новой.Книги "Головой вперед" обычно кажутся мне на одну ступень выше книг "Для чайников" (честно говоря, эту я не читал).

Вообще-то мне нравится ресторан Питера Коуда Дизайн Java;вы можете дешево купить подержанный экземпляр, он больше не печатается.Очевидно, что это тяжелая Java, но дизайнерская часть хороша и довольно легкая.

Ивар Джейкобсон Объектно-ориентированная разработка программного обеспечения также очень хорош (в нем, среди прочего, была представлена идея "вариантов использования") и, похоже, все еще находится в печати, но вокруг миллионы использованных копий.

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

  1. ОО:Мышление на C ++ или мышление на Java Брюса Экеля.
  2. Создание настольных приложений: Окончательный ++
  3. и разработка веб-приложений: http://www.djangoproject.com/
  4. База данных:У меня нет ни одной хорошей рекомендации.

Мои доводы в пользу приведенных выше рекомендаций:

  1. Я не хочу рекомендовать дюжину книг или больше.Вам не обязательно читать их все.
  2. Книги Брюса Экеля "Thinking" могут охватывать основные концепции OO, поскольку у вас не возникнет никаких проблем с освоением нового языка, поскольку это всего лишь вопрос синтаксиса.
  3. Ultimate ++ может создавать самые компактные настольные приложения, и они очень агрессивно используют шаблоны, что приводит к созданию очень элегантных кодов.Другим преимуществом использования U ++ по сравнению с чем-то вроде MFC, WPF, java Swing, Java SWT, Python и т.д. Является то, что ваш исполняемый файл не имеет никакого багажа или зависимостей.Это не потребует от ваших пользователей установки JRE, .NET Framework, библиотек DLL MFC или Python и т.д.Это мой выбор, поэтому я даю такую рекомендацию.
  4. Django, потому что я знаю и люблю Python, и я не очень хорошо знаю Ruby.Эксперты Ruby сказали бы RubyOnRails, а эксперты C # сказали бы ASP MVC.Java может говорить о Struts, JSF, Stripes, но я не думаю, что в Java есть что-то, что может конкурировать с фреймворками из Python, Ruby, C # или даже PHP в наши дни.

Я удивлен, что никто до сих пор не упомянул Шаблоны проектирования "Банды четырех".Это книга, которая действительно закрепила в моем сознании то, как на самом деле следует использовать OO.Первые две главы особенно поучительны о том, как все должно работать в хорошей системе.Это не самое легкое чтение, но я думаю, что оно самое лучшее.Если вам нужен более легкий взгляд на тот же предмет, ознакомьтесь с шаблонами дизайна Head First.

Для книги о том, как разрабатывать программное обеспечение, я бы порекомендовал Прагматичный Программист.Для оформления вы, возможно, захотите взглянуть на Дизайн, Ориентированный на интерфейс. Код Завершен это справочник "от А до Я" по разработке программного обеспечения.Возможно, вы также захотите рассмотреть вариант О'Рейли Головой Вперед книги, особенно Возглавьте объектно-ориентированный анализ и проектирование, как нечто немного более легкое для начала.

Редактировать Я не знаю, как я забыл о Бобе Мартине, но вы также можете прочитать любую из книг, которые есть у Object Mentor в любом из его списков.Вот их раздел о Разработка программного обеспечения.В частности, я бы порекомендовал Гибкая разработка программного обеспечения:Принципы, шаблоны и практика (Amazon, но это также вторая книга в списке Object Mentor).

Много лет назад, будучи программистом на c и немного занимаясь программированием под Windows 3.1, я многое узнал об объектно-ориентированном проектировании, используя фреймворк разработки, в частности объектную библиотеку Windows от Borland.В то время их пакет также содержал хорошо разработанную библиотеку объектов базы данных для их database engine.В настоящее время вся база данных состоит из SQL, что, имхо, не позволяет продемонстрировать хороший дизайн.

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

У вас также должно быть Объектно-ориентированный анализ и проектирование приложений - Грейди Буч.

Это обязательно для людей, интересующихся OOAD

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top