Кто какие подходы использует для оптимизации своего кода?
Я знаю, что здесь можно написать много банальщины, но вдруг у кого-то есть свои изысканные решения. Прошу поделиться с коммьюнити!
Кто какие подходы использует для оптимизации своего кода? Я знаю, что здесь можно написать много банальщины, но вдруг у кого-то есть свои изысканные решения. Прошу поделиться с коммьюнити!
Мне тоже интересно что я делаю не так.
Мне тоже интересно что я делаю не так.
Для меня оптимизация кода делится на 2 части:
1. Оптимизация кода как такового. То есть выделение повторяющихся блоков с последующим обобщением.
2. Оптимизация логики. Этот процесс посложнее и не всегда тривиален.
[quote="Gres"]Кто какие подходы использует для оптимизации своего кода? Я знаю, что здесь можно написать много банальщины, но вдруг у кого-то есть свои изысканные решения. Прошу поделиться с коммьюнити![/quote] Для меня оптимизация кода делится на 2 части: 1. Оптимизация кода как такового. То есть выделение повторяющихся блоков с последующим обобщением. 2. Оптимизация логики. Этот процесс посложнее и не всегда тривиален.
У меня обычно никогда не получалось доходить до оптимизации кода.
Но это больше проблема заказов, а не потому что не хочется. Хочется даже очень, и в голове постоянно рождаются куча идей по оптимизации, но время на них не остается. Заказчику это не интересно и платить за лишние часы потраченные на оптимизацию не все хотят. Везде работает принцип "Работает - не трогай".
Хотя нет, вру, один раз попался проект где я был сам себе хозяин, так там старался все делать красиво.
Главными моментами в оптимизации кода считаю:
- выделение повторяющегося кода в отдельные методы.
- разделение кода на слои (контроллеры, сервис, модель)
- уменьшение количества SOQL и DML.
- уменьшение итераций в циклах (избавляюсь от циклов в циклах)
У меня обычно никогда не получалось доходить до оптимизации кода. Но это больше проблема заказов, а не потому что не хочется. Хочется даже очень, и в голове постоянно рождаются куча идей по оптимизации, но время на них не остается. Заказчику это не интересно и платить за лишние часы потраченные на оптимизацию не все хотят. Везде работает принцип "Работает - не трогай". Хотя нет, вру, один раз попался проект где я был сам себе хозяин, так там старался все делать красиво. Главными моментами в оптимизации кода считаю: - выделение повторяющегося кода в отдельные методы. - разделение кода на слои (контроллеры, сервис, модель) - уменьшение количества SOQL и DML. - уменьшение итераций в циклах (избавляюсь от циклов в циклах)
[quote]- уменьшение количества SOQL[/quote] Иногда приходилось для этого делать циклы в циклах( Ибо других вариантов нету
Циклы в циклах легко обходятся с помощью Map, конечно приходится немного извратиться и создать сложные мапы, но тогда и количество SOQL легко сокращается и все циклы строятся в 1 уровень.
Я помню разобрал для себя эту тему, когда на один вызов выделялось 200 000 code statements.
Жаль что их убрали, мне нравилось сражаться за этот limit.
Циклы в циклах легко обходятся с помощью Map, конечно приходится немного извратиться и создать сложные мапы, но тогда и количество SOQL легко сокращается и все циклы строятся в 1 уровень. Я помню разобрал для себя эту тему, когда на один вызов выделялось 200 000 code statements. Жаль что их убрали, мне нравилось сражаться за этот limit.
Хе! От также и борюсь) Через мап. Но иногда приходится и циклы в циклах делать( Тут от задачи зависит.
Хе! От также и борюсь) Через мап. Но иногда приходится и циклы в циклах делать( Тут от задачи зависит.
Да я бы не сказал, что хорошо. Раньше каждый managed package имел свои 200 000 code statement, а теперь на CPU time одно на всех. Таким образом, из-за одного кривого package может отвалиться все остальное.
[quote="Dmitry Shnyrev"]Циклы в циклах легко обходятся с помощью Map, конечно приходится немного извратиться и создать сложные мапы, но тогда и количество SOQL легко сокращается и все циклы строятся в 1 уровень. Я помню разобрал для себя эту тему, когда на один вызов выделялось 200 000 code statements. Жаль что их убрали, мне нравилось сражаться за этот limit.[/quote] Да я бы не сказал, что хорошо. Раньше каждый managed package имел свои 200 000 code statement, а теперь на CPU time одно на всех. Таким образом, из-за одного кривого package может отвалиться все остальное.