|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
|
Опции темы | Поиск в этой теме |
16.04.2017, 12:39 | #11 |
Форумчанин
Регистрация: 12.04.2017
Сообщений: 889
|
..вот кстати, рефакторинг в С++ нудно делать из-за дву-файлов (СРР + Н) и пре-компиляции. Т.е. желательно вообще заводить новые классы/шаблоны прям сразу, как понадобилось. А вдруг еще понадобится? Если не понадобится - не беда, компилятор сделает коротко, без дополнительных накладок.
|
16.04.2017, 12:46 | #12 |
Старожил
Регистрация: 12.01.2011
Сообщений: 19,500
|
Да
И еще из-за сложности языка для него мало хорошо работающих инструментов для рефакторинга и т.п. Типа как в IDE от JetBrains (Java, Питон и веб) или ReSharper для C# Visual Studio (для С++ ReSharper тоже есть уже, но хуже и сильно тормозит)
Ушел с форума, https://www.programmersforum.rocks, alex.pantec@gmail.com, https://github.com/AlexP11223
ЛС отключены Аларом. Последний раз редактировалось Alex11223; 16.04.2017 в 12:49. |
16.04.2017, 13:01 | #13 | |
Лис
Старожил
Регистрация: 18.09.2015
Сообщений: 2,409
|
Alex11223
Я согласен что абзац странный. Просто хотелось противопоставить дедукцию и индукцию. А в двух словах описать индукцию не удавалось. Поэтому и упомянул XP, так как этот подход является ярким представителем индукционного ведения разработки. Цитата:
Суть XP в том что рефакторинг происходит ежедневно или еженедельно. В отличии от других методологий когда рефракторный выполняют всего то пару раз перед началом разработки и на границе между этапами разработки которые могут длиться по несколько месяцев или лет. В XP от классического процесс интеграции носит непрерывный характер. Единый стиль написания он есть везде. Не только в XP. Применительно к С/С++, наиболее известными стандартами кодирования являются MISRA, HICPP, Google C++ Style Guide. И в первую очередь эти руководства направленны не только на оформление, сколько на избежание шибок и упрощения тестирования и понимания кода. Тот же MISRA имеет реализацию в виде программы одной из static analyze tools. Не совсем понимаю как им удалось описать все правила, но видимо туда не вошли правила рефакторинга.
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
У дзен программиста программа делает то что он хотел, а не то что он написал . |
|
16.04.2017, 13:05 | #14 | |
Лис
Старожил
Регистрация: 18.09.2015
Сообщений: 2,409
|
Цитата:
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
У дзен программиста программа делает то что он хотел, а не то что он написал . |
|
16.04.2017, 13:09 | #15 | |
Форумчанин
Регистрация: 12.04.2017
Сообщений: 889
|
Цитата:
#define SOME ....using SOME #undef SOME (борюсь с копипастой по мере сил), так вот уже этого креатор не найдет (если есть использвание цели рефактора в макросе) Кстати дарю трюк Бывает, нужно описать громадное число одинаковостей - ну например, прототип виртуальной функции в 20 наследниках. Так вот, сам этот прототип можно задефайнить локальненько и избежать копи-пасты, использовать вроде так PROT(Class1) { } PROT(Class2) { } и т.д. С темплейтами может не взлететь, если у вас есть указатели на базу только. Когда такое бывает? Например - глобальные настройки. Контроллов GUI там разных может быть валом, в зависимости от типа хранимых данных, а хочется настройку задать просто, например массивом чего-то. Последний раз редактировалось alexzk; 16.04.2017 в 13:20. |
|
16.04.2017, 13:33 | #16 |
Старожил
Регистрация: 02.01.2011
Сообщений: 3,327
|
|
16.04.2017, 13:56 | #17 |
Форумчанин
Регистрация: 09.04.2017
Сообщений: 598
|
Спасибо всем. Буду применять советы.
|
16.04.2017, 16:18 | #18 |
gamer
Участник клуба
Регистрация: 09.05.2015
Сообщений: 1,550
|
От фонаря.
Смотрю, сколько надо переменных. Потом гляжу, объявлены ли они, или требуются дополнительные. А иногда в конце решения задачи оказывается, что какие-то переменные были не нужны. http://programmersforum.ru/showpost....3&postcount=68
мой канал на Ютубе: youtube.com/@games-zz3ju/videos/
мой канал на Рутубе: rutube.ru/channel/31423139/videos/ В ожидании Кеши... |
16.04.2017, 16:22 | #19 | |
Форумчанин
Регистрация: 12.04.2017
Сообщений: 889
|
Цитата:
Предварительное описание - это тяжкое наследие первых версий С (70х годов), когда у функции не было параметров, и описание переменных выполняло 2 роли - описать параметры, а что не использовано параметрами - оставить как переменные. Последний раз редактировалось alexzk; 16.04.2017 в 16:25. |
|
16.04.2017, 16:35 | #20 |
gamer
Участник клуба
Регистрация: 09.05.2015
Сообщений: 1,550
|
Насчёт "видимости переменных" в блоках я в курсе, и эта штука прокатывает даже в Turbo C 2.0 (правда, я не пробовал).
Объявление переменных "в момент нужды в них" начинается с C++. Мне сложно перестроить своё мышление. Если мне нужны всего пять переменных для решения кучи задач, и я вижу, что все переменные занимают явно меньше 30 килобайт - то я в начале main () и описываю их. Потому что памяти компьютеру явно хватит. - Не так уж много в учебных программах надо.
мой канал на Ютубе: youtube.com/@games-zz3ju/videos/
мой канал на Рутубе: rutube.ru/channel/31423139/videos/ В ожидании Кеши... |
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Как составить блок-схему к решению задачи | ElenaGreen | Microsoft Office Excel | 1 | 17.11.2013 13:23 |
вопросы по литературе, подсказки по решению задачи. | kynew | Помощь студентам | 0 | 04.11.2012 21:38 |
Подход к решению | kaar | Помощь студентам | 2 | 04.04.2010 11:56 |
помогите по решению задачи | Irok | Паскаль, Turbo Pascal, PascalABC.NET | 2 | 08.01.2009 00:52 |
Нужна помощь по решению задачи .(Delphi) | Nora | Помощь студентам | 4 | 24.05.2008 07:29 |