Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > .NET Frameworks (точка нет фреймворки) > C# (си шарп)
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 15.09.2017, 09:42   #11
WorldMaster
Старожил
 
Аватар для WorldMaster
 
Регистрация: 25.08.2011
Сообщений: 2,841
По умолчанию

На восстановление кода с нуля всего неделя???
Чет мне кажется что на разбор декомпилированного кода уйдет куда больше времени.
Skype - wmaster_s E-Mail - WorldMasters@gmail.com
Работаем по 3 критериям - быстро, качественно, недорого. Заказчик выбирает любые два.
WorldMaster вне форума Ответить с цитированием
Старый 15.09.2017, 10:40   #12
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,000
По умолчанию

Цитата:
Сообщение от WorldMaster Посмотреть сообщение
На восстановление кода с нуля всего неделя???
Чет мне кажется что на разбор декомпилированного кода уйдет куда больше времени.
да нет, если проект небольшой/ не сложный не так много времени уйдет.
особенно если проект не такой давний.
я такие проекты даже в IL патчил(ildasm/ilasm) из-за того что сырцы потерял
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.
Пепел Феникса вне форума Ответить с цитированием
Старый 15.09.2017, 15:49   #13
OmegaBerkut
Спокойный псих
Участник клуба
 
Аватар для OmegaBerkut
 
Регистрация: 19.03.2013
Сообщений: 1,538
По умолчанию

Цитата:
Сообщение от Пепел Феникса Посмотреть сообщение
с goto проблема что не известно куда он прыгнет
Вот этого вот вообще не понял ... Я ставлю метку, и пишу на неё goto. Что значит "неизвестно куда прыгнет" ? Известно же. Этож не ассемблер. Хотя и в нём есть как именные метки, так и прыжок в никуда по адресу. Если пользоваться адресными прыжками, и всё правильно высчитать - то так же всё будет изветсно. Но именно в таком варианте другая проблема - первая же модификация крошит все нижеследующие переходы.
Цитата:
Сообщение от Пепел Феникса Посмотреть сообщение
goto тут тоже самое, но не имеет блочности
В этом я и вижу преимущество. Когда очень много вложенных вложений - становится всё труднее поддерживать читабельность, в самом простом случае - вставка табуляции. Да, она есть в режиме "выделил текст + нажал tab", но когда таких выделений+нажатий много - это начинает раздражать. Тут ещё есть другая проблема - что для кого является "читабельным" ... Для меня например куда более удобно оставлять пустые ветки else, как раз таки для собственного удобства чтения кода.
Цитата:
Сообщение от Пепел Феникса Посмотреть сообщение
не имеет защиты от ошибки
А как же руки и мозги из правильного места ? =) Пожалуй, самая лучшая защита от ошибки.
Я участвовал в двух мало-мальски крупных проектах (45 000 и 80 000 строк кода). Мне давали реализовывать 15 классов, и дали на это дело два месяца. Я сделал почти за месяц, принёс, на меня посмотрели, решили проверить ... Начали матюкаться на goto (реализация на 2 000 сток кода); я тут же вытащил вторую реализацию, которая полностью без goto (5 000 строк кода). Благо платили хорошо, и времени было предостаточно.
Забрали те, что были с goto - "потому что читать гораздо легче, и работает визуально быстрее". Там чуть ли не в половине функций классов использовались goto - где то выход из циклов, где то перепрыгивание в конец, где то просто из разряда "наименьшее из бед" - реализация с goto в 35 строк кода, без goto растянулась на 120.

Цитата:
Сообщение от WorldMaster Посмотреть сообщение
Чет мне кажется что на разбор декомпилированного кода уйдет куда больше времени
Два часа потратил. Проблема не в том, что бы восстановить 1 000 строк кода (это можно сделать и за один день). Проблема в том, что правила обработки прайсов были как раз таки в утерянном коде. Так как прайсы нужно обновлять - перед каждым "вновь" добавляемым правилом нужно вспомнить, и написать эти правила, и писать код. Не все прайсы обновляются каждый день (из тех, которые нуждаются в программной обработке). Все прайсы обновляются как минимум раз в неделю - вот и получается, что на восстановление проектика ушла бы рабочая неделя.
Подпись ? Не, не слышал ...

Последний раз редактировалось OmegaBerkut; 15.09.2017 в 15:55.
OmegaBerkut вне форума Ответить с цитированием
Старый 15.09.2017, 22:10   #14
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,000
По умолчанию

Цитата:
Сообщение от OmegaBerkut Посмотреть сообщение
Вот этого вот вообще не понял ... Я ставлю метку, и пишу на неё goto. Что значит "неизвестно куда прыгнет" ? Известно же.
Вам неизвестно понятие code-flow?
вы твердо можете сказать где находится в коде цель goto?
сейчас, через месяц, через год?(или у вас проекты из разряда релиз и забыл, или передал код, потом не мои проблемы?)

Цитата:
Сообщение от OmegaBerkut Посмотреть сообщение
Хотя и в нём есть как именные метки, так и прыжок в никуда по адресу. Если пользоваться адресными прыжками, и всё правильно высчитать - то так же всё будет изветсно. Но именно в таком варианте другая проблема - первая же модификация крошит все нижеследующие переходы.
спасибо, в курсе, но зачем вы это приплели?

Цитата:
Сообщение от OmegaBerkut Посмотреть сообщение
Когда очень много вложенных вложений - становится всё труднее поддерживать читабельность, в самом простом случае - вставка табуляции. Да, она есть в режиме "выделил текст + нажал tab", но когда таких выделений+нажатий много - это начинает раздражать.
вы в 21 веке работаете в блокноте ?

Цитата:
Сообщение от OmegaBerkut Посмотреть сообщение
Тут ещё есть другая проблема - что для кого является "читабельным"
если не забивать на оформление кода, то читаемость на высоте, все начала case на одном уровне, инструкции внутри, на большем уровне.
или у вас экран 800*600?

Цитата:
Сообщение от OmegaBerkut Посмотреть сообщение
А как же руки и мозги из правильного места ? =) Пожалуй, самая лучшая защита от ошибки.
всетаки у вас проекты с темой сделал и забыл?
про команду уж молчу.

Цитата:
Сообщение от OmegaBerkut Посмотреть сообщение
Забрали те, что были с goto - "потому что читать гораздо легче, и работает визуально быстрее". Там чуть ли не в половине функций классов использовались goto - где то выход из циклов, где то перепрыгивание в конец, где то просто из разряда "наименьшее из бед" - реализация с goto в 35 строк кода, без goto растянулась на 120.
тут два варианта, либо вы писали код в стиле плоского асма(одна огромная процедура), либо же....я не знаю как надо ухитрится.

если у вас разница между goto и не goto идет 2-3 раза, это "мастерство".
сколько лет программирую ни разу ни видел такого кода.
впрочем пример с 5к кода отлично это показывает, это надо постараться, что с goto было более читабельно и поддерживаемо.

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


в общем как я вам уже упоминал, ваш код и ваше дело.
но вам уже много кто говорил и объяснял(я скорее держу разговор дольше всего).
вам может стоит задуматься? посмотреть на чужие практики, посмотреть чужой код.


удачи Вам, боюсь говорить больше не о чем.
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.
Пепел Феникса вне форума Ответить с цитированием
Старый 16.09.2017, 02:05   #15
WorldMaster
Старожил
 
Аватар для WorldMaster
 
Регистрация: 25.08.2011
Сообщений: 2,841
По умолчанию

Может не в тему но ... тут рядом ветка по поводу "стоит ли получать диплом программиста или лучше самоучка". вот в данном случае результат налицо.
Я вот хоть убей не понимаю как можно определять качество кода в количестве строк. Ну я могу и "Hello world" расписать на 5000 строк ... ну это ладно.
От конструкции goto отказались ведь не просто потому что захотелось. Это относится к фундаментальному развитию технологии разработки программного обеспечения. Представьте себе отладку большого проекта.. вас эти goto будут кидать по разным частям кода. И каким образом вы будете отслеживать логику процесса? И ладно когда вы один разработчик .. но когда вас команда .. вас камнями закидают за подобное поведение.

Ну и в довершение темы неплохо почитать статейку.
Skype - wmaster_s E-Mail - WorldMasters@gmail.com
Работаем по 3 критериям - быстро, качественно, недорого. Заказчик выбирает любые два.
WorldMaster вне форума Ответить с цитированием
Старый 16.09.2017, 02:32   #16
OmegaBerkut
Спокойный псих
Участник клуба
 
Аватар для OmegaBerkut
 
Регистрация: 19.03.2013
Сообщений: 1,538
По умолчанию

Цитата:
Сообщение от Пепел Феникса Посмотреть сообщение
спасибо, в курсе, но зачем вы это приплели?
Прилепил затем, что "неизвестно" только в том случае, когда выполняется адресный переход вниз после модификации кода ассемблера ...

Цитата:
Сообщение от Пепел Феникса Посмотреть сообщение
вы твердо можете сказать где находится в коде цель goto?
сейчас, через месяц, через год?
Ну как бы да, ибо даю названия вменяемые, в особо запущенных случаях комментирую. А так - если говорить о том, что будет через год - то скорее всего даже вы вряд ли сможете сказать что то про код (не то что про goto), в который не заглядывали в течении года и более.
"Любой твой код, в который ты не заглядывал больше шести месяцев, будет выглядеть как код, который написал кто-то другой.".

Цитата:
Сообщение от Пепел Феникса Посмотреть сообщение
перепрыгивания в конец это надуманная проблема, и по мне, более похожа на недостаток знаний или нежелания рефакторинга, нежели нечто реальное
Я уже написал - так проще "на данный момент", в том плане, что написал одну небольшую функцию, с одним несчастным goto, и по сути - "забыл" про то, как работает эта функция, до первой необходимости искать какие то баги, которые если и появляются - то явно уж не из-за применения goto. В частности - у меня функция жевала пустые ячейки - из-за неправильного применения string.Split(), не более.
Я не могу похвастаться своим пятилетним опытом и двухлетним стажем, но всё же - за это время я как то пришёл к таким практикам, и вроде как всё нормально ... Ещё лет через 5-10 может что то добавится/изменится.
Мне кстати очень нравилось на Pascal/Delphi вот что: можно было выполнить переход на метку, которая находится в какой нибудь соседней ветке кода, или ниже по уровню вложения. Я так запрыгивал в циклы, и перепрыгивал как то так - if () {goto metka;} else {metka:}. А то и вообще - в другие ветки на разных уровнях вложения ... Но, такой код уже действительно хрупкий - первое изменение чего либо - и всё сыпется.
Цитата:
Сообщение от Пепел Феникса Посмотреть сообщение
конечный goto так же запросто можете принести еще больше goto ради хвостовой метки...
Сути сказанного не понял, но циклы мне проще писать уже при помощи немало известных операторов for/while/do. Один раз была задачка олимпиадная, условий уже не помню, где цикл был настолько изощрённый - в него нужно было то входить, то выходить, да бы внешние данные перестраивать; вот там да - был треш, угар и содомия. Но работало, и задачку сдал. Я думаю, что жюри долго не могли понять, что это такое, и как оно работает - но это уже уж точно не мои проблемы.
Цитата:
Сообщение от Пепел Феникса Посмотреть сообщение
вы в 21 веке работаете в блокноте ?
Я немного о другом - суть в том, что когда нужно что то переделать, то чем больше уровней вложения - тем дольше процесс переделывания. У меня такие необходимости возникают из-за того, что пришла какая то новая мысль/идея, как это лучше реализовать.
А вообще да - иногда и в блокнотике не боюсь "руки пачкать".
Цитата:
Сообщение от Пепел Феникса Посмотреть сообщение
посмотреть на чужие практики, посмотреть чужой код
Мне один достаточно грамотный программист часто задаёт вопросы из разрядка "как сделать то, как сделать это". Я даю ему ответы за пару минут, но он их не принимает, видите ли - брезгует пользоваться переходами, ну или просто что то не нравится. Ну и ищет решения самостоятельно. Один раз чё то думал почти две недели, а потом забил.
Это к слову о том, что он фапает на "гайдлайны от гугла". Не вы не подумайте, что я плохо отзываюсь о гугле - просто сам факт. Я уже как то писал о том, что гайдлайны - это ограничения, которые по большому счёту обоснованы лишь человеческим фактором. Но это лишь моё личное мнение, если вам это нужно - это ваше право.
Цитата:
Сообщение от Пепел Феникса Посмотреть сообщение
всетаки у вас проекты с темой сделал и забыл?
Ну почти ... Накодил за месяц, отдал на тестирование, пару месяцев поддержки - и всё всех устраивало. Потом только забыл. Может действительно мне не хватает опыта работы над одним проектом на протяжении больше полугода, да и ещё в команде. Но, это поправимо со временем, я думаю =).
Цитата:
Сообщение от Пепел Феникса Посмотреть сообщение
если не забивать на оформление кода, то читаемость на высоте, все начала case на одном уровне, инструкции внутри, на большем уровне
Я так и делаю, (с редкими вкрапливаниями goto), но о переделывании какого нибудь блока/функции я уже написал.
Подпись ? Не, не слышал ...

Последний раз редактировалось OmegaBerkut; 16.09.2017 в 02:45.
OmegaBerkut вне форума Ответить с цитированием
Старый 16.09.2017, 02:40   #17
OmegaBerkut
Спокойный псих
Участник клуба
 
Аватар для OmegaBerkut
 
Регистрация: 19.03.2013
Сообщений: 1,538
По умолчанию

Цитата:
Сообщение от WorldMaster Посмотреть сообщение
Я вот хоть убей не понимаю как можно определять качество кода в количестве строк.
Никто не определяет качество; это лишь объём работы (полезной или нет - это уже другой вопрос). Я тоже не понимаю, почему часто платят за количество набитых строк кода ... Так можно и на "водичке" зарабатывать, которая будет груить компьютеры просто потому что какой то быдлокодер оборзел.
Всегда считал и считаю - что чем более компактный код, тем лучше.
Цитата:
Сообщение от WorldMaster Посмотреть сообщение
Представьте себе отладку большого проекта
В текущей теме речь не о постоянном применении goto где попало. А в определённых ситуациях, где это наиболее оптимально и удобно. Тема перешла в вопрос - "почему обсирают", косо смотрят, и люто-бешено ненавидят как goto, так и личностей его использующих. Что больше уже наталкивает на мысли о том, что "goto это плохо и никаких исключений".
Цитата:
Сообщение от WorldMaster Посмотреть сообщение
Ну я могу и "Hello world" расписать на 5000 строк
А вот с этого места по подробнее пожалуйста можно ?
Подпись ? Не, не слышал ...
OmegaBerkut вне форума Ответить с цитированием
Старый 16.09.2017, 09:15   #18
Alex11223
Старожил
 
Аватар для Alex11223
 
Регистрация: 12.01.2011
Сообщений: 19,500
По умолчанию

Цитата:
Сообщение от WorldMaster Посмотреть сообщение
тут рядом ветка по поводу "стоит ли получать диплом программиста или лучше самоучка". вот в данном случае результат налицо.
Так а чем диплом помог бы?
В моем вузе вроде никто ничего не рассказывал про goto )
Да и у автора вроде есть диплом.
Цитата:
Сообщение от OmegaBerkut Посмотреть сообщение
Любой твой код, в который ты не заглядывал больше шести месяцев, будет выглядеть как код, который написал кто-то другой
Так о том ж и речь. Goto осложнит понимание.
Цитата:
Сообщение от OmegaBerkut Посмотреть сообщение
Я тоже не понимаю, почему часто платят за количество набитых строк кода
Где?
Ушел с форума, https://www.programmersforum.rocks, alex.pantec@gmail.com, https://github.com/AlexP11223
ЛС отключены Аларом.
Alex11223 вне форума Ответить с цитированием
Старый 16.09.2017, 22:06   #19
OmegaBerkut
Спокойный псих
Участник клуба
 
Аватар для OmegaBerkut
 
Регистрация: 19.03.2013
Сообщений: 1,538
По умолчанию

Цитата:
Сообщение от Alex11223 Посмотреть сообщение
Так о том ж и речь. Goto осложнит понимание
Есть же всё таки ситуации, когда пускай там эта функция будет 15 строк кода, вместо 25, и будет гораздо проще в плане восприятия ... Я видел кучу статей по этому поводу в гугле. Просто я руководствуюсь следующим умозаключением: всё можно, если осторожно; как говорится - с умом.
Цитата:
Сообщение от Alex11223 Посмотреть сообщение
Где?
Ну может сейчас и не делают так уже (платить за строки кода), но раньше точно помню было такое, ещё мой препод (аспирант, хороший прогер) возмущался типа "какого хрена я за качественный компактный код получаю копейки, когда рядом сосед налил много воды, а толку ноль".
В итоге тот препод уволился от туда с предлогом "не устраивают условия работы". В подробности не вдавался.
Цитата:
Сообщение от Alex11223 Посмотреть сообщение
В моем вузе вроде никто ничего не рассказывал про goto )
Цитата:
Сообщение от OmegaBerkut Посмотреть сообщение
косо смотрят, и люто-бешено ненавидят как goto, так и личностей его использующих
Подпись ? Не, не слышал ...
OmegaBerkut вне форума Ответить с цитированием
Старый 16.09.2017, 22:21   #20
vaDS
Пользователь
 
Регистрация: 16.04.2017
Сообщений: 94
По умолчанию

Цитата:
Сообщение от OmegaBerkut Посмотреть сообщение
Здравствуйте.
Вопрос такой: чем декомпилировать exe-шник собственного проекта ? Это у меня консольная программа.

Дальше кому не интересно - можно не читать.
История такая: написал я программу-парсер прайс-листов, для того что бы подгонять форматы данных разных прайсов под одинаковый, для сайта над которым я работаю.
Брат, я не думаю что за неделю нельзя весь код по-новой написАть. Тем более консоль. (главное, чтоб был стимул). А вы сидите и жалуетесь на форуме.

Рефлектор.Нет - говорят, самое то(но платная).
vaDS вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Декомпилировать EXE файл (предположительно на C++) Xezon Помощь студентам 5 11.08.2013 03:44
Вскрыть exe'шник wm_leviathan Операционные системы общие вопросы 8 31.01.2011 17:11
Добавление нового ресурса в exe шник MVX Помощь студентам 19 06.08.2010 11:19
Как 'засунуть' звуковой файл в EXE-шник.чтоб моя прога состояла всего из одного exe betirsolt Общие вопросы Delphi 11 18.04.2010 21:58
18-ти килобайтовый EXE-шник... Altera Общие вопросы Delphi 15 30.04.2008 06:33