Другие языки программирования и технологии
Как уменьшить количество строк в коде?
Здраствуйте! Я школьник. Я только начинаю учиться программировать (в основном получаю знания из бесплатных видео - курсов). Долго решал одну задачу, но все же решил, мне показалось, что он какой - то большой. Посмотрел, как решили другие, и их код был намного меньше моего. Сказал себе: "Ну хоть работет :D ". Это приходит со временем или этот навык нужно как-то развивать ?
#include <файл>
включит все, даже всю винду, но от этого код быстрее не будет.
Вы проверяйте код не только по длине, но и по скорости, так как короче не значит еще хорошо.
Ну и покажите код, мы подумаем тоже над ним
включит все, даже всю винду, но от этого код быстрее не будет.
Вы проверяйте код не только по длине, но и по скорости, так как короче не значит еще хорошо.
Ну и покажите код, мы подумаем тоже над ним
Главное правило такое: если захотелось скопировать кусок кода, надо дать себе по рукам и подумать, как можно этого избежать. Все остальное упирается в знание технологий и/или библиотек, нарабатывается со временем.
Страх "большого кода" это не навык, а болезнь. Со временем, и при накоплении опыта - она наоборот, проходит. Главное чтобы код был эффективным, чистым, корректно оформленным... а количество строк и символов, реального значения не имеет.
> в основном получаю знания из бесплатных видео - курсов
Лучше читай книги. Хороших курсов мало. Новичок не может отличить хорошие курсы от плохих.
> Я только начинаю учиться программировать
Может у тебя просто недостаточно знаний, чтоб написать более компактный код? Будешь изучать программирование и научишься. Теория + практика.
Лучше читай книги. Хороших курсов мало. Новичок не может отличить хорошие курсы от плохих.
> Я только начинаю учиться программировать
Может у тебя просто недостаточно знаний, чтоб написать более компактный код? Будешь изучать программирование и научишься. Теория + практика.
10-15К вместе с комментариями - нормальная длинна.
Если код сильно больше 30К, тогда можно разделить на несколько файлов. Ресурсы не в счёт - их можно и по мегабайту делать.
Если код сильно больше 30К, тогда можно разделить на несколько файлов. Ресурсы не в счёт - их можно и по мегабайту делать.
Используй Sub и Function
Влад Сергеев
Не туда.
По мере изучение языка ты узнаешь всё больше методов, конструкций. Некоторые логические операции можно сократить путём применение какой либо конструкции.
К примеру для проверки массива в php, нет обязанности возиться с каждым значением. А можно применить иную конструкцию - foreach
Всё это приходит по мере изучение языка.
К примеру для проверки массива в php, нет обязанности возиться с каждым значением. А можно применить иную конструкцию - foreach
Всё это приходит по мере изучение языка.
Бинь Ян
Спасибо за ответ и разъяснения)
Лучше париться на счет оптимизации кода, нежели чем над количеством строк в коде.
1. Оптимизировать можно практически всё. И даже там, где тебе кажется, что всё работает быстро, можно сделать ещё быстрее. Необходимо помнить, что любую задачу можно решить несколькими путями, и твоя задача выбрать из них наиболее рациональный.
2. Оптимизацию всегда надо начинать со слабых мест в коде программы. Обычно оптимизировать то, что и так быстро работает, необходимости не возникает. Да и эффект такой оптимизации будет минимален.
3. При оптимизации нужно разбирать все операции, каждый оператор, ничего не пропуская. Обычно оптимизацию начинают с тех мест в коде, где находятся регулярно повторяющиеся операции, циклы. То, что находится внутри цикла, будет повторена n количество раз, поэтому, чем меньше кода находится в цикле, тем быстрее процессор просчитает его. Если цикл получается слишком большой, его можно разложить на несколько более маленьких. В данном случае размер нашей программы повыситься, зато скорость увеличиться.
4. Старайтесь поменьше использовать вычисления с плавающей запятой. Любые операции с целыми числами выполняются на порядок быстрее. Операции умножения или деления также выполняются достаточно долго. Вместо умножения лучше использовать сложение, а деление можно заменить сдвигом. Сдвиг работает намного быстрее и умножения, и деления. Это связано с тем, что все числа хранятся в двоичной системе. Если перевести число из десятичной системы счисления в двоичную и сдвинуть число вправо на одну позицию, то можно заметить, что данная операция аналогична делению на 2. При сдвиге влево происходит деление числа на 2. Хоть эти операции и аналогичны, но сдвиг работает в несколько раз быстрее.
5. При создании процедур не надо обременять их большим количеством входных параметров. А всё потому, что при каждом вызове процедуры её параметры подымаются в специальную область памяти, стек, а после выхода изымаются оттуда. Также необходимо действовать аккуратно и с самими параметрами. Не надо пересылать процедурам переменные, содержащие данные большого объёма в чистом виде. Лучше передать адрес ячейки памяти, где хранятся данные, а внутри процедуры уже работать с этим адресом.
6. В самых критических моментах работы программы, например вывод на экран, можно воспользоваться языком Assembler. Даже встроенный в Delphi ассемблер намного быстрее родных функций языка. Код ассемблера можно вынести в отдельный модуль, откомпилировать и подключить к своей программе.
7. Лишних проверок не бывает. Не надо думать, что если у вас не возникла какая-то нестандартная ситуация, то она не возникнет и у пользователя. Всегда делайте проверку того, что вводит пользователь, не дожидаясь, когда эти данные понадобятся.
8. Если ты пишешь достаточно большую и громоздкую программу, добавляй в неё комментарии. Компилятор их всё равно игнорирует. И если вдруг тебе захочется продать исходные коды своих программ, комментарии повысят им цену, да и самому будет легче в них ориентироваться.
9. Для достижения хорошего эффекта ты должен знать IDE, интегрированную среду разработчика, языка, на котором ты программируешь, в нашем случае Delphi. Обычно в опциях IDE разрешается выбирать различные типы компиляторов, а по умолчанию стоит самый простой, быстро компилирующий, но создающий менее оптимизированный код. Поэтому всегда ставь самый оптимизирующий вид компилятора.
10. Старайся делать в программах стандартный интерфейс. Ну не надо делать треугольные кнопочки, нестандартные меню и прочие графические навороты. Всё это очень сильно тормозит программу, расходует большое количество ресурсов компьютера и требует дополнительного времени на разработку. К примеру, настоящий UNIX – это вообще обычный shell.
Статья 2005 года, но советы - годные. Источник указан. Удачи.
1. Оптимизировать можно практически всё. И даже там, где тебе кажется, что всё работает быстро, можно сделать ещё быстрее. Необходимо помнить, что любую задачу можно решить несколькими путями, и твоя задача выбрать из них наиболее рациональный.
2. Оптимизацию всегда надо начинать со слабых мест в коде программы. Обычно оптимизировать то, что и так быстро работает, необходимости не возникает. Да и эффект такой оптимизации будет минимален.
3. При оптимизации нужно разбирать все операции, каждый оператор, ничего не пропуская. Обычно оптимизацию начинают с тех мест в коде, где находятся регулярно повторяющиеся операции, циклы. То, что находится внутри цикла, будет повторена n количество раз, поэтому, чем меньше кода находится в цикле, тем быстрее процессор просчитает его. Если цикл получается слишком большой, его можно разложить на несколько более маленьких. В данном случае размер нашей программы повыситься, зато скорость увеличиться.
4. Старайтесь поменьше использовать вычисления с плавающей запятой. Любые операции с целыми числами выполняются на порядок быстрее. Операции умножения или деления также выполняются достаточно долго. Вместо умножения лучше использовать сложение, а деление можно заменить сдвигом. Сдвиг работает намного быстрее и умножения, и деления. Это связано с тем, что все числа хранятся в двоичной системе. Если перевести число из десятичной системы счисления в двоичную и сдвинуть число вправо на одну позицию, то можно заметить, что данная операция аналогична делению на 2. При сдвиге влево происходит деление числа на 2. Хоть эти операции и аналогичны, но сдвиг работает в несколько раз быстрее.
5. При создании процедур не надо обременять их большим количеством входных параметров. А всё потому, что при каждом вызове процедуры её параметры подымаются в специальную область памяти, стек, а после выхода изымаются оттуда. Также необходимо действовать аккуратно и с самими параметрами. Не надо пересылать процедурам переменные, содержащие данные большого объёма в чистом виде. Лучше передать адрес ячейки памяти, где хранятся данные, а внутри процедуры уже работать с этим адресом.
6. В самых критических моментах работы программы, например вывод на экран, можно воспользоваться языком Assembler. Даже встроенный в Delphi ассемблер намного быстрее родных функций языка. Код ассемблера можно вынести в отдельный модуль, откомпилировать и подключить к своей программе.
7. Лишних проверок не бывает. Не надо думать, что если у вас не возникла какая-то нестандартная ситуация, то она не возникнет и у пользователя. Всегда делайте проверку того, что вводит пользователь, не дожидаясь, когда эти данные понадобятся.
8. Если ты пишешь достаточно большую и громоздкую программу, добавляй в неё комментарии. Компилятор их всё равно игнорирует. И если вдруг тебе захочется продать исходные коды своих программ, комментарии повысят им цену, да и самому будет легче в них ориентироваться.
9. Для достижения хорошего эффекта ты должен знать IDE, интегрированную среду разработчика, языка, на котором ты программируешь, в нашем случае Delphi. Обычно в опциях IDE разрешается выбирать различные типы компиляторов, а по умолчанию стоит самый простой, быстро компилирующий, но создающий менее оптимизированный код. Поэтому всегда ставь самый оптимизирующий вид компилятора.
10. Старайся делать в программах стандартный интерфейс. Ну не надо делать треугольные кнопочки, нестандартные меню и прочие графические навороты. Всё это очень сильно тормозит программу, расходует большое количество ресурсов компьютера и требует дополнительного времени на разработку. К примеру, настоящий UNIX – это вообще обычный shell.
Статья 2005 года, но советы - годные. Источник указан. Удачи.
Алекс Филиппов
> но советы - годные
Не все. Часть советов - бред, даже для 2005 года.
Не все. Часть советов - бред, даже для 2005 года.
Сергей Неизвесно
Лучше париться на счет оптимизации кода, нежели чем над количеством строк в коде.
Пусть это останется главной мыслью ;з
Пусть это останется главной мыслью ;з
Фархат Нурахунов
5 и 6 советы довольно спорные. 5. Большинство CPU оптимизируют память на стеке так, чтобы она всегда была в кэше. Поэтому пара десятков переменных на стеке - ОК. А вот выделять большой массив на стеке = гарантированно замусорить кэш.
6. В 2018 году переносимость стала важнее оптимизации. Даже я, некогда фанат ассемблера, уже 3 года его почти не использовал... Столько знаний пропадает...
6. В 2018 году переносимость стала важнее оптимизации. Даже я, некогда фанат ассемблера, уже 3 года его почти не использовал... Столько знаний пропадает...
Развивать нужно, конечно же) Знаешь больше методик - больше реализаций, а они отличаются как быстродействием, так и объёмом кода. Плюс, если знаешь несколько языков, можешь выбрать более компактный, если позволяет задача
Бинь Ян
Спасибо! Буду самосовершенствоваться в программировании))
Со временем, но без развития не получится.
Бинь Ян
Спасибо)
Похожие вопросы
- Можно ли преобразовать строку с кодом на языке N в непосредственно код на языке N?
- Что означает эта строка в коде c++
- Дана матрица символов. Подсчитать количество строк, в которых букв больше, чем цифр.
- Почему программистам платят за количество говнокода, а не за качественный код?
- С++ Перенос длиной строки кода на другую.
- Как отдельно подсчитать количество русских букв и английских букв в строке массива???
- Помогите найти ошибку в коде с++. Скорее всего ошибка в сравнении строк.
- простейший код в Делфи: проверка строки на корректность символов
- Как посчитать количество гласных идущих в строке подряд?
- Помогите испрвить код Переписать первые элементы каждой строки матрицы a(n*m), больше некоторого числа C, в массив b .