Как стать автором
Обновить
20
0
Сергей Колесников @win0err

Разработчик программного обеспечения

Отправить сообщение

Зачем тут писать про httpie, когда curl — это не только консольная утилитка curl, но ещё и libcurl — библиотека, которую под капотом использует огромное количество проектов?

Зачем нужно сравнивать тёплое с мягким?

Про директории советую почитать man hier (hierarchy). Кратко и информативно

Спасибо! :-)
Нет, мы используем чистый JavaScript
Когда идёшь искать ufo ᕕ( ᐛ )ᕗ

На самом деле читаем документацию: «new Array(n) создаёт массив без элементов, но с заданной длиной».
Согласен, это не совсем логично, но это особенность.


Решение:
const array = new Array(10).fill(0).map((_, ind) => ind)

Шёл 2019-й год.
Мамкины оптимизаторы всё ещё советуют:


  1. Использовать for, а не forEach;
  2. Выносить подсчёт длины массива в for в инициализацию цикла.
  3. Заниматься микрооптимизациями.

Ну серьёзно, даже при итерации по массиву с несколькими тысячами элементов профита почти не будет.
Пруф: https://jsperf.com/for-vs-length

Да что вы прикопались к коду?
Нормальный первоапрельский код.


Ну а если серьёзно, KillerAngel, не используйте глобальные переменные.
Почитайте про чистые функции и почему нужно стремиться писать именно чистые функции.
Почитайте про ООП, с помощью него можно лучше структурировать код.
И не забывайте про многобайтовые кодировки, вы же с PHP работаете (mb_strlen, например).

Ну это немного другое. Тянуть огромный компонент, в котором можно создавать полноценные консольные приложения только ради покраски текста — ну такое
Пару лет назад делал штуку для раскраски текста:
github.com/win0err/php-terminal-tools
Там и цвета для палитр предопределены, разные вариации шрифтов.

Скриншот
image
Улучшенный менеджер паролей — это когда Хром стал предлагать пароли с другого поддомена?
Нельзя брать разработчика, ориентируясь только на его код.
Бывают соискатели, которые берут код своего тимлида и выдают за свой, например, выкладывают на Гитхаб.

Поэтому и актуален и вайтбординг, и опрос по базовым вещам. Такова реальность.

К вайтбордингу легко подготовиться, прорешивая задачки с LeetCode, например.

У Дебиана есть Debootstrap, из коробки он минимальнее Арча.


Ну и Арч на сервере — странно, если честно.

Сделать сайт на Битриксе, а потом удивляться, что он ВНЕЗАПНО плохо работает ¯_(ツ)_/¯

Да, я потестил. Получается медленней, чем писать на Гошном асме. Но это логично, поэтому не стал даже упоминать об этом в статье
Вы правы.

Но бывают исключения:
Во-первых, много частей Go написано на Ассемблере (см. Гитхаб: math, crypto, hash).
Во-вторых, есть примеры на проде у обычных компаний. Например, homm написал цикл статей, где они переделывали резайз изображений, там были ассемблерные вставки (введение, ..., использование SIMD).
Вкратце: это удобно. Отдал JSON, а у тебя всё по полочкам разложилось.
Почему делать на стороне СУБД — а зачем писать логику на стороне приложения, если можно её реализовать парой команд на стороне СУБД? Меньше кода — меньше ошибок.
Об этом был доклад Коли Самохвалова на Хайлоаде (слайды).
Как-то копался в исходниках FreeBSD. Помимо того, что там действительно хороший код, там ещё и пасхалки присутствуют.

Исходники cat:
static void
raw_cat(int rfd) { … }

static void
cook_cat(FILE *fp) { … }

Весь файл на Гитхабе.

Ну вот я обожаю Линукс. Использую с 2009-го года. Использую Федору как основную ОС.


Если мне нужно поработать со звуком, видео или графикой или с офисными документами, я перехожу на мак.
Там просто удобнее делать офисные дела. Pages, Numbers и Keynotes очень удобны. Как бы ни старались, LibreOffice ещё далёк до удобства вышеперечисленных программ.
Даже Документы Google удобнее, которые частенько выручают на Лине.


Наличие Photoshop, Final Cut — преимущество.
Большинство ПО для таких задач в Линуксе, к сожалению, неудобное или с ограниченным функционалом.
Использовать Wine можно, но лично мне не нравится такой подход.


Да и было бы ещё глупее, если бы этот мужик запустил презентацию в MS Office под Wine.


Если хотят популяризировать для десктопа, то пусть договорятся и выпустят Adobe * и MS Office. Как только Steam добавил поддержку линукса, сразу появилась куча игр под него. Так же и тут будет.

Насчёт недоступности репозиториев — это проблема с ДНС, вроде (судя по чатикам Федорки). Но это не точно.


Поправьте если ошибаюсь, но ведь есть mirror.yandex.ru, т.е. с использованием Федоры в Крыму проблем не должно. Просто изменить адрес репозитория.
Или такое решение не сработает?

Не стоит забывать, что бы уже не в 2013-м году. Интерпретатор очень сильно поумнел в версии 7.0. И такие микрооптимизации бессмысленны.

Докажу тестом:
Исходный код теста
Доступен на GitHub Gist, вносите правки, если я где-то ошибся.

В тесте измеряем изменение в потребляемой памяти в байтах и время выполнения в микросекундах
<?php 
echo 'PHP ' . phpversion() . PHP_EOL . PHP_EOL;
$test = [];
for($i = 0; $i < 100000; $i++)
	$test[$i] = $i;
process_test(function() use ($test) {
	foreach($test as $t)
	    continue; 
});
process_test(function() use ($test) {
	for($a = 0; $a < sizeof($test); $a++)
		continue; 
});
process_test(function() use ($test) {
	for($a = 0, $b = sizeof($test); $a < $b; $a++)
		continue;  
});
function process_test($callback) {
	static $runNumber = 0;
	$runNumber++;

	$startedAt = microtime(true);
	$callback();
	echo 'Test #' . $runNumber . ': ' . ( microtime(true) - $startedAt ) . ' seconds' . PHP_EOL;
}

Результаты для PHP 5.6
Test #1: 0.018749952316284 seconds
Test #2: 0.011775016784668 seconds
Test #3: 0.0035569667816162 seconds
Результаты для PHP 7.0
Test #1: 0.0010159015655518 seconds
Test #2: 0.0030970573425293 seconds
Test #3: 0.0013790130615234 seconds

Интересно, я достаточно большой массив протестировал?
Как видно из теста, в PHP 7.0 код с foreach (Test #1) работает быстрее, чем ваш «оптимизированный» код (Test #3). Глупо использовать в новых проектах PHP 5.6, когда в 7.0 появилось столько вкусняшек.

И вот ответьте: стоит ли жертвовать читабельностью кода ради микрооптимизаций?
Хотите экономию памяти? Читайте про генераторы.
Хотите быструю работу? Используйте PHP 7, он почти в два раза быстрее PHP 5.6

Информация

В рейтинге
Не участвует
Откуда
Москва, Москва и Московская обл., Россия
Зарегистрирован
Активность