Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Программирование [игнор отключен] [закрыт для гостей] / Мои проблемы с логикой / 11 сообщений из 11, страница 1 из 1
11.03.2011, 16:26
    #37160059
Diego Viajero
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Мои проблемы с логикой
Здравствуйте.
Помогите мне со следующей проблемой. Вот надо мне написать не маленький проект на Java, где 7-8 классов и 2-3 потока. В мыслях я составляю примерный ход работы программы, но когда дело доходит до написания классов и их связывания между собой - появляется еще куча неучтенных мелких деталей, которые заставляют пересматривать план выполнения приложения. И они появляются именно на стадии написания. Из за этого я начинаю добавлять кучу разных методов в классы, среди которых потом становится трудно ориентироваться, и, как следствие - написание программы либо заходит в тупик, и надо переписывать все заново, либо классы становятся слишком... не знаю как сказать... слишком узконаправленными что ли. В общем там находиться куча всего, чего там не должно быть.

А как вы начинаете писать свои приложения? Что бы выстроить четкую логику работы, и правильно ее реализовать. В том числе, если появятся новые идеи по ходу разработки?
...
Рейтинг: 0 / 0
11.03.2011, 16:35
    #37160078
Мои проблемы с логикой
Diego Viajero,

а знаете ли вы, что такое рефакторинг?
...
Рейтинг: 0 / 0
11.03.2011, 16:36
    #37160081
rt123
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Мои проблемы с логикой
а вот жаж ответ откуда ноги растут:

Другой крупный критик ООП – это известный специалист по программированию Александр Степанов, который, работая в Bell Labs, участвовал в создании C++ вместе c Бьерном Страуструпом (Bjarne Stroustrup), а впоследствии, уже после приглашения в HP Labs, написал Standard Template Library (STL). Александр Александрович полностью разочаровался в парадигме ООП; в частности, он пишет: “Я уверен, что парадигма ООП методологически неверна. Она начинает с построения классов. Это как если бы математики начинали бы с аксиом. Но реально никто не начинает с аксиом, все начинают с доказательств. Только когда найден набор подходящих доказательств, только тогда на этой основе выводится аксиома. Т.е. в математике вы заканчиваете аксиомой. Тоже самое и с программированием: сначала вы должны начинать развивать алгоритмы, и только в конце этой работы вы приходите к тому, что оказываетесь в состоянии сформулировать четкие и непротиворечивые интерфейсы. Именно из-за этой неразберихи в ООП так популярен рефакторинг – из-за ущербности парадигмы вы просто обречены на переписывание программы, уже в тот самый момент, когда только задумали её спроектировать в ООП-стиле ”. Ричард Столлман (Richard Stallman) также известен своим критическим отношением к ООП, особенно он любит шутить насчет того мифа объектников, что ООП “ускоряет разработку программ”: “Как только ты сказал слово "объект", можешь сразу забыть о модульности”.


http://www.sql.ru/forum/actualthread.aspx?tid=821220&pg=1
...
Рейтинг: 0 / 0
11.03.2011, 16:38
    #37160084
rt123
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Мои проблемы с логикой
рефакторингDiego Viajero,

а знаете ли вы, что такое рефакторинг?

а вот и говнокодЁр подоспел; невъепённый спец по рефакторингу
...
Рейтинг: 0 / 0
11.03.2011, 16:59
    #37160138
SQL_Lamer
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Мои проблемы с логикой
Diego Viajero,
Ты не огорчайся, что у тебя проблемы с этим
Теоретики десятилетиями бьются на тему как правильно писать, а к общему мнению так и не пришли
Старайся максимально вникнуть в предметную часть перед началом работы, это главное.

Diego Viajeroне маленький проект на Java, где 7-8 классов и 2-3 потока
измерение размера проекта классами - какое-то смешное. и потоками - тоже :))
А однопоточное приложение не может быть большим? :))

Diego ViajeroВ мыслях я составляю примерный ход работы программы, но когда дело доходит до написания классов и их связывания между собой - появляется еще куча неучтенных мелких деталей, которые заставляют пересматривать план выполнения приложения.
Не надо в мыслях, надо на бумаге, или в редакторе текста.
Пока ты из головы не вытащил план - он тебе до конца не ясен. Его даже и нету толком.
И только когда его сформулируешь в письменном виде - здесь и начинается понимание как и что сделать
...
Рейтинг: 0 / 0
11.03.2011, 17:09
    #37160163
Diego Viajero
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Мои проблемы с логикой
рефакторингDiego Viajero,

а знаете ли вы, что такое рефакторинг?
Нет, не знаю. Ну то есть, в совсем общих чертах. Почитаю, посмотрю...

rt123Тоже самое и с программированием: сначала вы должны начинать развивать алгоритмы, и только в конце этой работы вы приходите к тому, что оказываетесь в состоянии сформулировать четкие и непротиворечивые интерфейсы
То есть, что тут имеется ввиду? Необходимо четко представлять цель и способы ее достижения? Вообще конечно это правильно. Но это сложно, так как всегда появляются новые идеи...

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

Что посоветуете почитать на эту тему?

SQL_LamerНе надо в мыслях, надо на бумаге, или в редакторе текста.
Пока ты из головы не вытащил план - он тебе до конца не ясен. Его даже и нету толком.
И только когда его сформулируешь в письменном виде - здесь и начинается понимание как и что сделать
Вот это кстати действительно хороший совет. На бумаге все становиться все более четко и ясно. Спасибо, ближайший проект распишу на бумаге
...
Рейтинг: 0 / 0
11.03.2011, 19:14
    #37160385
mayton
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Мои проблемы с логикой
Старина Фаулер и Кириевски напряглись и родили целых две книжки по рефакторингу.
Мне хватить читать до пенсии. Чесно говоря мысли там не особо дружат с теорией
алгоритмов. Т.е. рационально зерно конечно есть. Но оно лежит где-то в плоскости
философии. Где-то в best practices. Это из области-де "каг лутше конструктор назвать"
createSomeFuckenEntity или просто new FuckenEntity c охватывающим списком параметров.
И этой всей бодяге посвящены длиннющие статьи с обоснованием типа "Мотивации" и
с руководством типа "Механика". Для меня это на 90% словесный блуд. Хотя нет. Вру. Полезные
кухонные советы там есть. И я даже их применял. Применял вовсе не по книге. А как-то так
интуитивно. Но если следовать им всем, то о сроках выхода релиза можно вообще забыть.
Короче бесконечная тема для дебатов.

Еще забавное наблюдение. Существует класс языков-парадигм (типа Haskell, Lisp) для которых
проблема рефакторинга либо не стоит остро. Либо вообще отсуствтует. Мдя...
...
Рейтинг: 0 / 0
11.03.2011, 21:44
    #37160521
k0rvin
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Мои проблемы с логикой
rt123,

хм... а тов. Э.Реймонд утверждал (в "Art of Unix Programming"), что начинать нужно наоборот, с продумывания структур данных, "при хорошо спроектированных структурах данных, алгоритмы становятся очевидны"
...
Рейтинг: 0 / 0
11.03.2011, 21:49
    #37160530
k0rvin
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Мои проблемы с логикой
maytonЕще забавное наблюдение. Существует класс языков-парадигм (типа Haskell, Lisp) для которых
проблема рефакторинга либо не стоит остро. Либо вообще отсуствтует. Мдя...

возможно дело просто в том, что в этих языках не принято "нагружать" структуры данных неким "поведением", набором методов, тем самым переусложняя эти структуры
...
Рейтинг: 0 / 0
11.03.2011, 22:08
    #37160555
rt123
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Мои проблемы с логикой
k0rvinrt123,

хм... а тов. Э.Реймонд утверждал (в "Art of Unix Programming"), что начинать нужно наоборот, с продумывания структур данных, "при хорошо спроектированных структурах данных, алгоритмы становятся очевидны"
они слишком взаимочсвязаны чтобы вот так говорить что д.б. первым, а что вторым
...
Рейтинг: 0 / 0
11.03.2011, 23:12
    #37160614
mayton
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Мои проблемы с логикой
rt123они слишком взаимочсвязаны чтобы вот так говорить что д.б. первым, а что вторым
Алгоритмы создавал еще Евклид. И скорее всего они являются более древней движущей силой
науки. Структуры данных - более позднее изобретение. Его можно приурочить к возникновению
кибернетики, а это, согласитесь более поздний этап.
...
Рейтинг: 0 / 0
Форумы / Программирование [игнор отключен] [закрыт для гостей] / Мои проблемы с логикой / 11 сообщений из 11, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]