Форум программистов «Весельчак У»
  *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

  • Рекомендуем проверить настройки временной зоны в вашем профиле (страница "Внешний вид форума", пункт "Часовой пояс:").
  • У нас больше нет рассылок. Если вам приходят письма от наших бывших рассылок mail.ru и subscribe.ru, то знайте, что это не мы рассылаем.
   Начало  
Наши сайты
Помощь Поиск Календарь Почта Войти Регистрация  
 
Страниц: 1 2 [Все]   Вниз
  Печать  
Автор Тема: Предложите ТЗ программы на С++ для новичка.  (Прочитано 35891 раз)
0 Пользователей и 1 Гость смотрят эту тему.
Fealeron
Интересующийся

ua
Offline Offline

« : 16-07-2010 12:01 » 

Добрый день!
Вопрос: предложите ТЗ программы на С++ для новичка.
Направление: прикладное программирование, если я правильно понимаю смысл этого.

А теперь подробней: изучаю С++, программированием интересовался давно, но только сейчас решил заняться этим серьёзно. После нескольких месяцев изучения основ С++ хочу сделать что-то серьёзное, что бы было, если и не аргументом в мою пользу на собеседовании, то принесло бы мне новые актуальные знания.

Сложность не знаю как лучше обозначить. Если временными затратами, то готов уделить несколько месяцев на данный проект, занимаясь им по 4-8 часов в день.

Пока что в планах изучение С++, так же интересна java, но она пока что только в планах как дополнительный путь развития.
Возможно вы подскажете какое-то более интересное направление.
Записан
Dale
Блюзмен
Команда клуба

ru
Offline Offline
Пол: Мужской

WWW
« Ответ #1 : 16-07-2010 12:08 » 

Нужно непременно ТЗ, или достаточно просто идеи?

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

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

Ходить по воде и разрабатывать программное обеспечение по спецификациям очень просто, когда и то, и другое заморожено. - Edward V. Berard

Любые проблемы в информатике решаются добавлением еще одного уровня косвенности – кроме, разумеется, проблемы переизбытка уровней косвенности. — Дэвид Уилер.
Fealeron
Интересующийся

ua
Offline Offline

« Ответ #2 : 16-07-2010 12:10 » 

Нужно непременно ТЗ, или достаточно просто идеи?

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

Да... я погорячился, идея с основными требованиями/характеристиками программы.
Записан
Вад
Команда клуба

ru
Offline Offline
Пол: Мужской

« Ответ #3 : 16-07-2010 12:24 » 

Fealeron, а что именно ты хочешь делать? В смысле, язык C++ в известной степени универсальный, на нём можно писать серверные, десктопные, встраиваемые приложения... Поэтому попробуй подумать, какое направление тебе более интересно: скажем, писать user-friendly десктопные утилиты для разных мелочей, обрабатывать какие-то данные, что-то ещё?
Записан
Dale
Блюзмен
Команда клуба

ru
Offline Offline
Пол: Мужской

WWW
« Ответ #4 : 16-07-2010 12:34 » 

Да... я погорячился, идея с основными требованиями/характеристиками программы.

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

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

Ходить по воде и разрабатывать программное обеспечение по спецификациям очень просто, когда и то, и другое заморожено. - Edward V. Berard

Любые проблемы в информатике решаются добавлением еще одного уровня косвенности – кроме, разумеется, проблемы переизбытка уровней косвенности. — Дэвид Уилер.
Fealeron
Интересующийся

ua
Offline Offline

« Ответ #5 : 16-07-2010 12:51 » 

Fealeron, а что именно ты хочешь делать? В смысле, язык C++ в известной степени универсальный, на нём можно писать серверные, десктопные, встраиваемые приложения... Поэтому попробуй подумать, какое направление тебе более интересно: скажем, писать user-friendly десктопные утилиты для разных мелочей, обрабатывать какие-то данные, что-то ещё?

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

Сбор требований - тоже довольно продолжительная и трудоемкая работа. Пожалуй, потруднее кодирования.
Опять не так сказал. Улыбаюсь Идея + требования на пару предложений, я имею ввиду, не могу привести точные примеры из области программирования, разве что из моей специальности: Система управления чего-то там должна выдерживать нагрузку Х, скорость работы У. Как-то так.
Записан
Fealeron
Интересующийся

ua
Offline Offline

« Ответ #6 : 16-07-2010 12:54 » 

Вспомнил про ИИ, тоже, интересное направление.
Записан
Джон
просто
Администратор

de
Offline Offline
Пол: Мужской

« Ответ #7 : 16-07-2010 12:56 » 

XMLEditor, если окажется слишком лёгким, можно в будущем "нагрузить": XPath... XSLT... XSL-FO (эт я конечно уже хватил, но почему бы и нет Ага )
Записан

Я вам что? Дурак? По выходным и праздникам на работе работать. По выходным и праздникам я работаю дома.
"Just because the language allows you to do something does not mean that it’s the correct thing to do." Trey Nash
"Physics is like sex: sure, it may give some practical results, but that's not why we do it." Richard P. Feynman
"All science is either physics or stamp collecting." Ernest Rutherford
"Wer will, findet Wege, wer nicht will, findet Gründe."
Fealeron
Интересующийся

ua
Offline Offline

« Ответ #8 : 16-07-2010 13:34 » 

XMLEditor, если окажется слишком лёгким, можно в будущем "нагрузить": XPath... XSLT... XSL-FO (эт я конечно уже хватил, но почему бы и нет Ага )

Интересно, правда, мало представляю всю глубину этого. Может быть кто-то предложит что-то более интересное для меня, если нет, то возьмусь за такой редактор.
Записан
Dale
Блюзмен
Команда клуба

ru
Offline Offline
Пол: Мужской

WWW
« Ответ #9 : 16-07-2010 21:11 » 

Вспомнил про ИИ, тоже, интересное направление.

Для начала это явный перебор. На этой теме немало научных школ обломалось.

Могу предложить идею программы, на которую сам все никак не раскачаюсь. Я уже много лет собираю электронную библиотеку (тексты и сканы книг). Периодически перебираю ее, раскладываю книги по папкам, переименовываю файлы (в файлохранилищах им частенько дают невразумительные имена вроде a12345.pdf, по которому нереально распознать нужную книгу). В настоящий момент у меня 6 экземпляров библиотеки (два домашних компьютера, ноутбук, рабочий компьютер, карманный компьютер, флешка). Само собой разумеется, что все они уже давно разные (на одном компьютере скачал новые книги, на другом переименовал, на третьем - перенес в другие папки). Если обзаведусь еще смартфоном и е-буком, ситуация станет еще хуже.

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

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

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

Ходить по воде и разрабатывать программное обеспечение по спецификациям очень просто, когда и то, и другое заморожено. - Edward V. Berard

Любые проблемы в информатике решаются добавлением еще одного уровня косвенности – кроме, разумеется, проблемы переизбытка уровней косвенности. — Дэвид Уилер.
Fealeron
Интересующийся

ua
Offline Offline

« Ответ #10 : 16-07-2010 22:15 » 

Могу предложить идею программы, на которую сам все никак не раскачаюсь. ...
Идея похожа с тем, о чём я и сам думал, но не собрался (программа сортировки музыки).
В общем, решено. Идея нравиться, буду делать, пока что только для текстовых файлов.
Спасибо за идеи. Улыбаюсь
Записан
Finch
Спокойный
Администратор

il
Offline Offline
Пол: Мужской
Пролетал мимо


« Ответ #11 : 17-07-2010 04:41 » 

Dale, Под Linux такой проблемой занимается rsync насколько я знаю, сам просто не пользовался ею. Наверно также можно найти  портированный вариант и под винду. Хотя для практики это довольно хорошое задание Улыбаюсь.
Кстати Fealeron, там будет не только текст Улыбаюсь Также и графика, так как многие книги в DJVU формате идут в сканах.
« Последнее редактирование: 17-07-2010 04:46 от Finch » Записан

Не будите спашяго дракона.
             Джаффар (Коша)
Fealeron
Интересующийся

ua
Offline Offline

« Ответ #12 : 17-07-2010 06:04 » 

Dale, Под Linux такой проблемой занимается rsync насколько я знаю, сам просто не пользовался ею. Наверно также можно найти  портированный вариант и под винду. Хотя для практики это довольно хорошое задание Улыбаюсь.
Кстати Fealeron, там будет не только текст Улыбаюсь Также и графика, так как многие книги в DJVU формате идут в сканах.
Про то, что не только текст, я знаю, и DJVU и PDF различные, в которые могли запихнуть сканы, в общем, будет чем заняться расширяя программу под разные расширения и разное содержание файлов.
Если кто-то предложит что-то ещё, то я буду только рад, поставлю в очередь следующими пунктами работы. Улыбаюсь
Записан
Finch
Спокойный
Администратор

il
Offline Offline
Пол: Мужской
Пролетал мимо


« Ответ #13 : 17-07-2010 06:09 » 

Fealeron, Чтоб тебе не зарываться так глубоко в форматы. Смотри в сторону Хэш функций. Синхронизаторы как правило дальше этого не зарываются.
Записан

Не будите спашяго дракона.
             Джаффар (Коша)
Fealeron
Интересующийся

ua
Offline Offline

« Ответ #14 : 17-07-2010 06:23 » 

Finch
Спасибо, постараюсь остаться в рамках разумного. Правда разбираться с форматами я хотел для того, что бы попробовать их переименовать в нормальные названия.
Записан
Finch
Спокойный
Администратор

il
Offline Offline
Пол: Мужской
Пролетал мимо


« Ответ #15 : 17-07-2010 06:39 » 

Fealeron, Основной принцип *nix программ "Программа должна делать одно действо. Но должна делать его очень хорошо". Так что, тебе в начале нужно научить сихронизировать. А потом уже отдельная программа будет переименовывать. Отдельная программа, которая будет создавать каталоги поиска и так далее. Тебе только затем останется жонглировать этими програмками, чтоб получить ркзультаты. Такие, что не предусмотрено в начале Улыбаюсь
Чтоб синхронизировать. У тебя есть 4 параметра.
1) Директория, где хранятся синхронизируемые файлы. (кстати можно сделать возможность рекурсивной и не рекурсивной синхронизации.
2) Имя файла
2) Дата последней записи в файл
3) Контрольная сумма (MD5, CRC32 ...)
Если 2 и 4 параметры совпадают, то можно считать, что файлы идентичны.
Записан

Не будите спашяго дракона.
             Джаффар (Коша)
Алексей++
глобальный и пушистый
Глобальный модератор

ru
Offline Offline
Сообщений: 13


« Ответ #16 : 17-07-2010 06:41 » 

Можно Qt воспользоваться - будет кроссплатформа + там уже есть удобные классы для работы с каталогами и файловой системой Улыбаюсь
Записан

Fealeron
Интересующийся

ua
Offline Offline

« Ответ #17 : 17-07-2010 06:59 » 

Finch
Значит, в начале буду делать синхронизацию.

Алексей1153++
Да, я собирался использовать Qt, но, пока что, только для построения интерфейса. И с этим буду разбираться.
« Последнее редактирование: 18-07-2010 08:36 от Fealeron » Записан
Алексей++
глобальный и пушистый
Глобальный модератор

ru
Offline Offline
Сообщений: 13


« Ответ #18 : 17-07-2010 07:38 » 

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

Fealeron
Интересующийся

ua
Offline Offline

« Ответ #19 : 17-07-2010 08:25 » 

Алексей1153++
Я собирался вначале сделать это как консольное приложение и потом уже добавить графический интерфейс.
Записан
Dale
Блюзмен
Команда клуба

ru
Offline Offline
Пол: Мужской

WWW
« Ответ #20 : 17-07-2010 17:28 » 

Я собирался вначале сделать это как консольное приложение и потом уже добавить графический интерфейс.

Весьма разумно с самого начала проекта придерживаться шаблона проектирования MVC или MVP, чтобы отделить предметную часть программы от интерфейсной. Тогда относительно просто будет менять "скины", не затрагивая остальное. А наличие интерфейса командной строки позволит вызывать программу из планировщика заданий, регулярно производя автоматическую синхронизацию.

Если есть реальное желание взяться за этот проект, постараюсь со своей стороны оказать посильную помощь.
Записан

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

Ходить по воде и разрабатывать программное обеспечение по спецификациям очень просто, когда и то, и другое заморожено. - Edward V. Berard

Любые проблемы в информатике решаются добавлением еще одного уровня косвенности – кроме, разумеется, проблемы переизбытка уровней косвенности. — Дэвид Уилер.
Dale
Блюзмен
Команда клуба

ru
Offline Offline
Пол: Мужской

WWW
« Ответ #21 : 17-07-2010 17:41 » 

Dale, Под Linux такой проблемой занимается rsync насколько я знаю, сам просто не пользовался ею. Наверно также можно найти  портированный вариант и под винду.

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

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

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

Ходить по воде и разрабатывать программное обеспечение по спецификациям очень просто, когда и то, и другое заморожено. - Edward V. Berard

Любые проблемы в информатике решаются добавлением еще одного уровня косвенности – кроме, разумеется, проблемы переизбытка уровней косвенности. — Дэвид Уилер.
Fealeron
Интересующийся

ua
Offline Offline

« Ответ #22 : 18-07-2010 08:35 » 

Dale
Да, я решил выполнить этот проект. Пока что собираю информацию которая будет полезной.
Записан
Dale
Блюзмен
Команда клуба

ru
Offline Offline
Пол: Мужской

WWW
« Ответ #23 : 18-07-2010 13:41 » 

Dale
Да, я решил выполнить этот проект. Пока что собираю информацию которая будет полезной.

Замечательно. Тогда очень рекомендую начать с этого: http://readyset.tigris.org/nonav/templates/index.html

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

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

Ходить по воде и разрабатывать программное обеспечение по спецификациям очень просто, когда и то, и другое заморожено. - Edward V. Berard

Любые проблемы в информатике решаются добавлением еще одного уровня косвенности – кроме, разумеется, проблемы переизбытка уровней косвенности. — Дэвид Уилер.
Fealeron
Интересующийся

ua
Offline Offline

« Ответ #24 : 19-07-2010 04:28 » 

Замечательно. Тогда очень рекомендую начать с этого: http://readyset.tigris.org/nonav/templates/index.html

Спасибо, сегодня посмотрю.
Записан
Fealeron
Интересующийся

ua
Offline Offline

« Ответ #25 : 19-07-2010 18:41 » 

Почитал немного по этой ссылке... Вот на что она меня подтолкнула сейчас.

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

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

Ещё, на счёт синхронизации устройства: посмотрев информацию о rsync (о которой говорил выше Finch), возможно попробую использовать эту технологию в данном проекте (GPL). Но по этому поводу я ещё ничего не смотрел.

Вот, часть моих мыслей на данном этапе.

С удовольствием выслушаю конструктивную критику. Улыбаюсь

* задание на разработку.doc (14 Кб - загружено 1004 раз.)
« Последнее редактирование: 19-07-2010 18:43 от Fealeron » Записан
Finch
Спокойный
Администратор

il
Offline Offline
Пол: Мужской
Пролетал мимо


« Ответ #26 : 19-07-2010 18:49 » 

Fealeron, GPL это не технология Улыбаюсь, а лицензия.
Записан

Не будите спашяго дракона.
             Джаффар (Коша)
Fealeron
Интересующийся

ua
Offline Offline

« Ответ #27 : 19-07-2010 18:56 » 

Fealeron, GPL это не технология Улыбаюсь, а лицензия.
Кхм, я это знаю, я имел ввиду, что rsync распространяется под GPL лицензией и исходный код доступен на сайте. Улыбаюсь
Да и технология - не самое правильное слово, наверное. Лучше сказать алгоритм или как-то ещё...
« Последнее редактирование: 19-07-2010 19:01 от Fealeron » Записан
Dale
Блюзмен
Команда клуба

ru
Offline Offline
Пол: Мужской

WWW
« Ответ #28 : 19-07-2010 19:01 » 

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

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

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

От поиска по названиям, скорее всего, особой пользы не будет. Вот пример: понадобилась книга, авторы Хоровиц, Хилл, называется "Искусство схемотехники". На файлообменнике она лежит под названием hh5.djvu (видимо, логика такая: Хоровиц-Хилл, 5-е издание). Если сразу не переименовать, по такому названию ее в жизни не найти. А большинство файлов с книгами и вовсе называется вроде a12345.zip, понимай как хочешь. А вот контрольная сумма - вещь полезная, позволит сопоставить скан одной и той же книги под разными названиями.
Записан

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

Ходить по воде и разрабатывать программное обеспечение по спецификациям очень просто, когда и то, и другое заморожено. - Edward V. Berard

Любые проблемы в информатике решаются добавлением еще одного уровня косвенности – кроме, разумеется, проблемы переизбытка уровней косвенности. — Дэвид Уилер.
Fealeron
Интересующийся

ua
Offline Offline

« Ответ #29 : 19-07-2010 19:14 » 

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

От поиска по названиям, скорее всего, особой пользы не будет. Вот пример: понадобилась книга, авторы Хоровиц, Хилл, называется "Искусство схемотехники". На файлообменнике она лежит под названием hh5.djvu (видимо, логика такая: Хоровиц-Хилл, 5-е издание). Если сразу не переименовать, по такому названию ее в жизни не найти. А большинство файлов с книгами и вовсе называется вроде a12345.zip, понимай как хочешь.
Согласен, но думаю оставить такую опцию в настройках, как самую простую/быструю, может быть кому-то и понадобиться...


А вот контрольная сумма - вещь полезная, позволит сопоставить скан одной и той же книги под разными названиями.
И я такого мнения.
« Последнее редактирование: 19-07-2010 19:16 от Fealeron » Записан
Finch
Спокойный
Администратор

il
Offline Offline
Пол: Мужской
Пролетал мимо


« Ответ #30 : 19-07-2010 19:18 » 

Когда то мне нужны были контрольные суммы Улыбаюсь Вот исходники, для расчета контрольной суммы. Как использовать, пример есть в коментариях h файлов. Исходники честно скомуниздил, насколько я помню на algolist. Просто чуть чуть их причесал.

* crc32.h (0.64 Кб - загружено 915 раз.)
* crc32.cpp (3.88 Кб - загружено 997 раз.)
* md5.h (0.75 Кб - загружено 898 раз.)
* md5.cpp (7.26 Кб - загружено 922 раз.)
* base.h (0.25 Кб - загружено 886 раз.)
« Последнее редактирование: 19-07-2010 19:31 от Finch » Записан

Не будите спашяго дракона.
             Джаффар (Коша)
Fealeron
Интересующийся

ua
Offline Offline

« Ответ #31 : 19-07-2010 19:26 » 

Finch спасибо! Улыбаюсь
Записан
Dale
Блюзмен
Команда клуба

ru
Offline Offline
Пол: Мужской

WWW
« Ответ #32 : 19-07-2010 19:29 » 

Попытался составить некоторое подобие задания на разработку.
...
С удовольствием выслушаю конструктивную критику. Улыбаюсь

"Это вы удачно зашли!" (С)

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

Но сперва рекомендация. Проект планируется как кроссплатформенный и с открытым кодом. А документация изначально ведется средствами MS Office, который, во-первых, привязан к MS Windows, во-вторых, имеет проприетарный формат (конечно, есть конверторы в другие форматы, но они обычно привязаны к конкретной версии). Я бы рекомендовал перейти на OpenOffice. При необходимости можно будет корректировать документацию, например, в Linux'е.

И еще OpenOffice имеет такое преимущество как средство ведения проектной документации. Я в своих домашних проектах пробовал заносить документы в систему управления версиями Subversion, и они обрабатывались весьма корректно: при сравнении версий явно указывается, какие строки добавлены, какие удалены, какие изменены. Документ MS Word ввиду закрытого формата воспринимается как двоичный файл, и в результате правок я получаю лишь перечень измененных байтов, от которого мне никакого прока. А поскольку на сайте вроде бы функционирует репозиторий и наверняка можно в него попроситься со своим проектом, такой аспект тоже немаловажен.
Записан

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

Ходить по воде и разрабатывать программное обеспечение по спецификациям очень просто, когда и то, и другое заморожено. - Edward V. Berard

Любые проблемы в информатике решаются добавлением еще одного уровня косвенности – кроме, разумеется, проблемы переизбытка уровней косвенности. — Дэвид Уилер.
Fealeron
Интересующийся

ua
Offline Offline

« Ответ #33 : 19-07-2010 19:34 » 

Dale. Кхм, я сижу, сейчас, в Linux и использовал OpenOffice, просто, сохранил в .doc формате, в расчёте на то, что док можно прочитать как на Linux, так и на Windows, в то же время под Windows я никогда не пользовался OpenOffice.
« Последнее редактирование: 19-07-2010 19:36 от Fealeron » Записан
Dale
Блюзмен
Команда клуба

ru
Offline Offline
Пол: Мужской

WWW
« Ответ #34 : 19-07-2010 19:41 » 

А я специально поставил OpenOffice под Windows, чтобы иметь возможность работать с версиями, кроссплатформенность пока меньше волнует. Если вдруг появятся еще желающие поучаствовать в проекте (всякое бывает), без управления версиями не обойтись, да и одному это тоже полезно, а в формате .doc это вряд ли получится.
Записан

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

Ходить по воде и разрабатывать программное обеспечение по спецификациям очень просто, когда и то, и другое заморожено. - Edward V. Berard

Любые проблемы в информатике решаются добавлением еще одного уровня косвенности – кроме, разумеется, проблемы переизбытка уровней косвенности. — Дэвид Уилер.
Fealeron
Интересующийся

ua
Offline Offline

« Ответ #35 : 19-07-2010 19:46 » 

Dale. В общем, это я уже учёл и далее буду сохранят в формате OpenOffice.
Записан
Dale
Блюзмен
Команда клуба

ru
Offline Offline
Пол: Мужской

WWW
« Ответ #36 : 19-07-2010 19:49 » 

Исходники честно скомуниздил, насколько я помню на algolist. Просто чуть чуть их причесал.

При необходимости свериться можно здесь: http://www.ietf.org/rfc/rfc1321

Вроде бы максимально приближено к первоисточнику, документ написан самим автором алгоритма.
Записан

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

Ходить по воде и разрабатывать программное обеспечение по спецификациям очень просто, когда и то, и другое заморожено. - Edward V. Berard

Любые проблемы в информатике решаются добавлением еще одного уровня косвенности – кроме, разумеется, проблемы переизбытка уровней косвенности. — Дэвид Уилер.
Dale
Блюзмен
Команда клуба

ru
Offline Offline
Пол: Мужской

WWW
« Ответ #37 : 19-07-2010 20:26 » 

Ну а теперь - обещанная критика. Буду столь же беспощаден, как компилятор, который к каждой запятой придирается.

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

Итак, по пунктам:

Цитата
Цель:

Разработка программы, которая будет выполнять роль сортировки


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

Цитата
и синхронизации файлов


Finch, увидев слово "синхронизация", сразу же задал вполне уместный вопрос: а почему бы не воспользоваться готовыми программами синхронизации, в которых нет недостатка? И многие другие его еще зададут, прочитав эту строчку. Нужно обязательно сначала сказать несколько слов о проблеме, которую мы взялись решать, и о том, что штатными средствами (какими именно?) ее решить не удается.

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

Сразу возникает вопрос: почему программа, способная синхронизировать книги, не справится с фильмами? В чем именно будет состоять ее дальнейшее развитие?

Цитата
Функциональность программы:
...
Детали реализации:
...

Рано пока. Функциональность программы и детали должны определяться решаемой задачей, а мы с ней еще не разобрались.

Цитата
Кроссплатформенность: один из инструментов обеспечения кроссплатформенности — использование C++ + Qt.

Тоже рано. В этом месте уместнее упомянуть, что мы хотим получить программу, работающую, как уже упоминалось, в Windows, Linux и, возможно, Windows Mobile. Выбор языков, библиотек, инструментария и т.д. архитектор проекта сделает позднее, определившись с задачей. Может, это будет C++ + Qt? а может, и Java, или Mono, или... В общем, всему свое время.

Лучше все же следовать шаблону ReadySET, он неплохо продуман. Согласно ему, на первом этапе мы должны описать:

1. В чем состоит суть проблемы, которую мы взялись решать.
2. Какую цель мы ставим перед собой в ходе проекта.
3. Границы проекта.

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

Ну вот пока вся критика...
Записан

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

Ходить по воде и разрабатывать программное обеспечение по спецификациям очень просто, когда и то, и другое заморожено. - Edward V. Berard

Любые проблемы в информатике решаются добавлением еще одного уровня косвенности – кроме, разумеется, проблемы переизбытка уровней косвенности. — Дэвид Уилер.
Fealeron
Интересующийся

ua
Offline Offline

« Ответ #38 : 19-07-2010 21:14 » 

Dale
Критика понятна. Значит завтра буду приводить всё это в порядок.
Записан
Kivals
Команда клуба

ca
Offline Offline
Пол: Мужской

WWW
« Ответ #39 : 21-07-2010 13:35 » 

Вставлю свои пару копеек:
Для универсальности документации ее хорошо бы вести в чем-то, типа DocBook - из него при необходимости генерится в один клик любой формат: набор HTML страниц, все в одну HTML, PDF, .... Ну а поскольку это xml - то и с системами контроля версий проблем нет априори.
Что касается контрольных сумм: есть идея (предложение) для продвинутого режима сравнения контрольные суммы считать по блокам файла, а не по всему файлу целиком. Если правильно придумать разбивку на блоки (возможно разбивка будет зависеть от формата) то это даст возможность найти различные версии одного и того же файла, даже если он был переименован. Например: есть аудио файл, в котором блоком считаем фрейм. Предположим мы "обрезали" начало и конец файла, или же подняли громкость в начале звучания - программа выдаст "вероятность совпадения файлов 1.mp3 и MyNewFile.mp3 - 75%. Что дальше с ним делать?"
Записан
Страниц: 1 2 [Все]   Вверх
  Печать  
 

Powered by SMF 1.1.21 | SMF © 2015, Simple Machines