|
|
|
Мои проблемы с логикой
|
|||
|---|---|---|---|
|
#18+
Здравствуйте. Помогите мне со следующей проблемой. Вот надо мне написать не маленький проект на Java, где 7-8 классов и 2-3 потока. В мыслях я составляю примерный ход работы программы, но когда дело доходит до написания классов и их связывания между собой - появляется еще куча неучтенных мелких деталей, которые заставляют пересматривать план выполнения приложения. И они появляются именно на стадии написания. Из за этого я начинаю добавлять кучу разных методов в классы, среди которых потом становится трудно ориентироваться, и, как следствие - написание программы либо заходит в тупик, и надо переписывать все заново, либо классы становятся слишком... не знаю как сказать... слишком узконаправленными что ли. В общем там находиться куча всего, чего там не должно быть. А как вы начинаете писать свои приложения? Что бы выстроить четкую логику работы, и правильно ее реализовать. В том числе, если появятся новые идеи по ходу разработки? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.03.2011, 16:26 |
|
||
|
Мои проблемы с логикой
|
|||
|---|---|---|---|
|
#18+
Diego Viajero, а знаете ли вы, что такое рефакторинг? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.03.2011, 16:35 |
|
||
|
Мои проблемы с логикой
|
|||
|---|---|---|---|
|
#18+
а вот жаж ответ откуда ноги растут: Другой крупный критик ООП – это известный специалист по программированию Александр Степанов, который, работая в 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 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.03.2011, 16:36 |
|
||
|
Мои проблемы с логикой
|
|||
|---|---|---|---|
|
#18+
рефакторингDiego Viajero, а знаете ли вы, что такое рефакторинг? а вот и говнокодЁр подоспел; невъепённый спец по рефакторингу ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.03.2011, 16:38 |
|
||
|
Мои проблемы с логикой
|
|||
|---|---|---|---|
|
#18+
Diego Viajero, Ты не огорчайся, что у тебя проблемы с этим Теоретики десятилетиями бьются на тему как правильно писать, а к общему мнению так и не пришли Старайся максимально вникнуть в предметную часть перед началом работы, это главное. Diego Viajeroне маленький проект на Java, где 7-8 классов и 2-3 потока измерение размера проекта классами - какое-то смешное. и потоками - тоже :)) А однопоточное приложение не может быть большим? :)) Diego ViajeroВ мыслях я составляю примерный ход работы программы, но когда дело доходит до написания классов и их связывания между собой - появляется еще куча неучтенных мелких деталей, которые заставляют пересматривать план выполнения приложения. Не надо в мыслях, надо на бумаге, или в редакторе текста. Пока ты из головы не вытащил план - он тебе до конца не ясен. Его даже и нету толком. И только когда его сформулируешь в письменном виде - здесь и начинается понимание как и что сделать ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.03.2011, 16:59 |
|
||
|
Мои проблемы с логикой
|
|||
|---|---|---|---|
|
#18+
рефакторингDiego Viajero, а знаете ли вы, что такое рефакторинг? Нет, не знаю. Ну то есть, в совсем общих чертах. Почитаю, посмотрю... rt123Тоже самое и с программированием: сначала вы должны начинать развивать алгоритмы, и только в конце этой работы вы приходите к тому, что оказываетесь в состоянии сформулировать четкие и непротиворечивые интерфейсы То есть, что тут имеется ввиду? Необходимо четко представлять цель и способы ее достижения? Вообще конечно это правильно. Но это сложно, так как всегда появляются новые идеи... И у меня возникает проблемы "распределения функций", то есть иногда у меня класс выполняет некоторые методы, за которые он вообще не должен отвечать.. И это становиться ясно либо только после написания такого приложения, когда я взгляну на него с общего плана, или после того, как я захожу в тупик)) Это очень не приятно.. Что посоветуете почитать на эту тему? SQL_LamerНе надо в мыслях, надо на бумаге, или в редакторе текста. Пока ты из головы не вытащил план - он тебе до конца не ясен. Его даже и нету толком. И только когда его сформулируешь в письменном виде - здесь и начинается понимание как и что сделать Вот это кстати действительно хороший совет. На бумаге все становиться все более четко и ясно. Спасибо, ближайший проект распишу на бумаге ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.03.2011, 17:09 |
|
||
|
Мои проблемы с логикой
|
|||
|---|---|---|---|
|
#18+
Старина Фаулер и Кириевски напряглись и родили целых две книжки по рефакторингу. Мне хватить читать до пенсии. Чесно говоря мысли там не особо дружат с теорией алгоритмов. Т.е. рационально зерно конечно есть. Но оно лежит где-то в плоскости философии. Где-то в best practices. Это из области-де "каг лутше конструктор назвать" createSomeFuckenEntity или просто new FuckenEntity c охватывающим списком параметров. И этой всей бодяге посвящены длиннющие статьи с обоснованием типа "Мотивации" и с руководством типа "Механика". Для меня это на 90% словесный блуд. Хотя нет. Вру. Полезные кухонные советы там есть. И я даже их применял. Применял вовсе не по книге. А как-то так интуитивно. Но если следовать им всем, то о сроках выхода релиза можно вообще забыть. Короче бесконечная тема для дебатов. Еще забавное наблюдение. Существует класс языков-парадигм (типа Haskell, Lisp) для которых проблема рефакторинга либо не стоит остро. Либо вообще отсуствтует. Мдя... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.03.2011, 19:14 |
|
||
|
Мои проблемы с логикой
|
|||
|---|---|---|---|
|
#18+
rt123, хм... а тов. Э.Реймонд утверждал (в "Art of Unix Programming"), что начинать нужно наоборот, с продумывания структур данных, "при хорошо спроектированных структурах данных, алгоритмы становятся очевидны" ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.03.2011, 21:44 |
|
||
|
Мои проблемы с логикой
|
|||
|---|---|---|---|
|
#18+
maytonЕще забавное наблюдение. Существует класс языков-парадигм (типа Haskell, Lisp) для которых проблема рефакторинга либо не стоит остро. Либо вообще отсуствтует. Мдя... возможно дело просто в том, что в этих языках не принято "нагружать" структуры данных неким "поведением", набором методов, тем самым переусложняя эти структуры ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.03.2011, 21:49 |
|
||
|
Мои проблемы с логикой
|
|||
|---|---|---|---|
|
#18+
k0rvinrt123, хм... а тов. Э.Реймонд утверждал (в "Art of Unix Programming"), что начинать нужно наоборот, с продумывания структур данных, "при хорошо спроектированных структурах данных, алгоритмы становятся очевидны" они слишком взаимочсвязаны чтобы вот так говорить что д.б. первым, а что вторым ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.03.2011, 22:08 |
|
||
|
Мои проблемы с логикой
|
|||
|---|---|---|---|
|
#18+
rt123они слишком взаимочсвязаны чтобы вот так говорить что д.б. первым, а что вторым Алгоритмы создавал еще Евклид. И скорее всего они являются более древней движущей силой науки. Структуры данных - более позднее изобретение. Его можно приурочить к возникновению кибернетики, а это, согласитесь более поздний этап. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.03.2011, 23:12 |
|
||
|
|

start [/forum/topic.php?fid=16&msg=37160521&tid=1343092]: |
0ms |
get settings: |
9ms |
get forum list: |
16ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
166ms |
get topic data: |
10ms |
get forum data: |
2ms |
get page messages: |
48ms |
get tp. blocked users: |
1ms |
| others: | 281ms |
| total: | 539ms |

| 0 / 0 |
