ФлеймФорумПрограммирование

Дилемма. Писать быстро или каждую функцию прорабатывать месацами с оптимизацией.

Страницы: 1 2 3 Следующая »
#0
(Правка: 11:49) 11:45, 5 сен 2025

Собственно скорость написания кода зависит от того, как подходишь к написанию функционала программы.

Чтобы учесть больше моментов и проработать функцию, стоит потратить больше времени.
Тогда это затягивает разработку.

Либо фигачить быстро(и ставить везде goto :) ) и править потом баги и дописывать ещё что-то в функцию.
Хотя так тоже не для всех функций подходит. Какие-то придётся хорошо отлаживать и править.
Например загрузка 3д анимаций или уровня.

Например я потратил два месяца на функцию генерации звуков для своего сталкера.
Как бы не быстро вышло.

#1
12:01, 5 сен 2025

Писать на нормальных языках высокого уровня

#2
12:04, 5 сен 2025

Писать на нормальных языках

Всё равно получается не нормально :)

#3
12:06, 5 сен 2025

Писать на нормальных языках

Ты же должен сначало понять что именно должна делать функция и сделать нормальный алгоритм её работы.
А ЯП это уже третий момент.

#4
(Правка: 13:58) 13:50, 5 сен 2025

Ну вот ты потратил два месяца на функцию генерации звуков, а мог бы просто взять готовые звуки. Ноль времени.

Надо побороть в себе страсть к оптимизации по размеру (как в примере со звуками), и по скорости, там где от этого не будет видимого результата (все эти твои sse конвертации строк в числа, итд).

Генерацией звуков есть смысл заниматься для конкурсов генерации звуков или демо-сцены. Ну или если тебе от этого весело, но тогда и жаловаться нечего.

#5
13:58, 5 сен 2025

ronniko
> Ты же должен сначало понять что именно должна делать функция и сделать нормальный алгоритм её работы.

Используй питон или какой-нибудь другой язык, где есть REPL. Там можно писать и проверять код одновременно, как бы "не выходя из программы", имея возможность пощупать в любой момент лежащие в памяти данные. Так быстрее создавать алгоритм, когда ты не знаешь точно, что и как хочешь сделать, и что в результате получится.

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

#6
13:58, 5 сен 2025

Я выбрал следующий путь - мелкие функции и улучшения оставляю чат-боту. Сложное пишу сам. Особо не тестирую, пушу в гитхаб. Главное чтоб компилилось и запускалось. Тесты и баголовля - потом. Уже стало похоже на код больших систем - не идеально, местами уродливо. И меня это устраивает.

#7
14:27, 5 сен 2025

ronniko
> Чтобы учесть больше моментов и проработать функцию, стоит потратить больше времени.
> Тогда это затягивает разработку.
согласись, ты не знаешь что такое оптимизация.

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

  Но именно этого ты и не видишь.

#8
(Правка: 15:08) 15:02, 5 сен 2025

Но именно этого ты и не видишь.

Просто нога  чешется :)

Смотреть с 5 минуты и 31 секунды.

+ Показать
#9
(Правка: 15:10) 15:05, 5 сен 2025

Mirrel

function CreateObj: zglTPoint2D;
var
  x, y, i: LongWord;
label
  XYNotCreate;
begin

//Чтобы эту функцию защетить от подвисаний. Вводим errornum переменную.
errornum = -1
XYNotCreate: errornum +=1;
  if errornum >= 10 then exit;

  x := Random(32);
  y := Random(24);
  for i := 0 to 3 do
    if (x = round(stone[i].x)) and (y = Round(stone[i].Y)) then
      goto XYNotCreate;       // возвращаемся в самое начало.

  for i := 0 to Snake.len - 1 do
    if (x = round(Snake.lenSnake[i].X)) and (y = Round(Snake.lenSnake[i].Y)) then
      goto XYNotCreate;       // возвращаемся в самое начало.

  Result.X := x;
  Result.Y := y;
end;
#10
15:10, 5 сен 2025

Зачем делать работу, которая не нужна?
Зачем оптимизировать то, что не влияет заметно на производительность?
Зачем продмывать функции, которые могут никогда не пригодится?
80% результата требуют 20% времени.
Оставшиеся 20% результата требуют 80% времени.
Сколько мы сделаем фич за 100% времени, если будем каждую делать только на 80%? А если на 100%?
В большинстве случаев 5 фич сделанных на 80% ценней одной сделанной на 100%. Тем более, что и 100% сделанную и 80% сделанную всё равно придется допиливать из-за изменившихся условий.
Гораздо выгоднее не заниматься преждевременной оптимизацией и закладыванием архитектуры на будущее.
Это не значит, что надо писать говнокод с техдолгом. Это значит надо писать код решающий текущие задачи с пониманием того, как ты будешь его оптимизировать и улучшать. Но именно что с пониманием на будущее, а не сейчас же этим заниматься.
К слову, код, в который заложили все архитектурные решения с учетом всех возможных вариантов развития его в будущем - сам является переусложненным говнокодом в подавляюющем большинстве случаев.

#11
15:21, 5 сен 2025

Нужно завести 5 содержанок - пусть пишут код

#12
(Правка: 15:28) 15:25, 5 сен 2025

@!!ex

Зачем делать работу, которая не нужна?
Зачем оптимизировать то, что не влияет заметно на производительность?
Зачем продмывать функции, которые могут никогда не пригодится?

Я такого и не делаю.
Мефические и не пойми для чего функции , я не пишу.
Есть конкретные задачи их и решаю, под них и пишу функции.

Приведу пример.
Надо писать функции для поведения и логики персонажей.
Сразу делема. Как сделать гибкую и универсальную структуру для всех персонажей ?
И связать эту структуру с набором функций.

#13
15:29, 5 сен 2025

Нужно завести 5 содержанок - пусть пишут код

У Найтмареза было 5 кошек для этого :)

#14
15:44, 5 сен 2025

ronniko
> Как сделать гибкую и универсальную структуру для всех персонажей ?
Написать 5 реализацией в разных проектах, посмотреть еще 20 написанных другими людьми.
Статье Сеньеором с пониманием как пишутся такие штуки.
С первого раза хорошо не получится всё равно.

Страницы: 1 2 3 Следующая »
ФлеймФорумПрограммирование