Pull to refresh

Comments 10

Жесть какая. Писать огромную программу на C++ для замены подстроки в js-файле.
С этим бы справился однострочник на PowerShell, а для linux можно взять bash или awk.
Разве что время некуда девать…

В случае PowerShell и bash, не удалось бы разведать кросс-компиляцию с её нюансами на С++. Есть языки программирования с помощью которых можно выполнить эту задачу без компиляции, большого объёма кода и с кроссплатформенностью всё в порядке.

Количество странностей в этой статье просто зашкаливает.

  1. Зачем править минимизированный js, когда доступны исходники. Сделайте форк для себя или пулл-реквест, если считаете, что фитча может быть полезна другим.

  2. Уже сказали выше: километровая программа на с++ для замены подстроки в текстовом файле? Зачем? Это же несколько строчек на bash, питоне или ноде.

  3. Тут вкусовщина, конечно, но посмотрите в сторону Remote Development плагина (который, как следует из названия, помимо копирования файлов предоставляет существенно более расширенные функции для удаленной разработки).

Судя по описанию проекта на github, файлы конфигураций хранятся в папке проекта, потому что у каждого проекта могут быть свои настройки загрузки на (S)FTP сервер. Даже в случае, если все проекты копируются на один сервер, целевые папки все равно различаются по каждому проекту. Поэтому, не понятно, как автор смог объединить настройки вех своих проектов в один конфигурационный файл.

Не соглашусь с комментариями выше. Человек хотел сделать на C++ - он сделал на C++.

Слова Автора и Комментаторов, что можно было сделать быстрее и короче на ??? желательно дополнить: ТАК И НА C++ можно сделать быстрее и короче.

Например код:

if(this->selected_number == 1){ this->selected_number = 0; iter = false; }else if(this->selected_number == 2){ this->selected_number = 1; iter = false; }else if(this->selected_number == 3){ this->selected_number = 2; iter = false; }else{ ...

Можно написать так:

if (selected_number > 0 && selected_number < 4) {

--selected_number;

iter = false; } else { ...

В целом: приятно, что люди выбираются из своей зоны комфорта и пробуют что-то новое. Автор - респект.

Спасибо за понимание!!! Ваше замечание по коду исправил.

Э-э-э: Предполагалось, что человек написал статью в порыве желания попробовать что-то новое. Ну попробовал и попробовал. Отлично!

Однако, если (вдруг! сюрприз) Вам хочется идти дальше, то есть ещё пара советов (или рассматривайте текст ниже как излишнее ворчание ниочём):

  • не используйте system. Это вызов, который по +100500 причин может завершиться неудачно. Если уж совсем хочется сделать такой вызов, то НЕ используйте его (или хотя-бы контролируйте результат (и что-то с этим результатом делайте);

  • уберите (практически) все this. Вы используете его формально правильно, но это излишне;

  • с ошибками лучше определиться: либо совсем не обрабатывать (программа на коленке, для себя); либо обрабатывать (половина файлов проверяется на открытие, другая - нет; операции записи/позиционирования/др не проверяются). И не проверяется успех выделения памяти

  • лучше работать в одной кодировке текста. Могу порекомендовать либо utf-8 и std::string; либо utf16 и std::wstring. А вот ввод/вывод уже конвертировать в нужный вам формат. И не потребуется делать указатели на строки с ошибками (формат-то один);

Спасибо за советы!!! Думою они мне ещё пригодятся.

По-моему, не хватает тэга "Ненормальное программирование".

Sign up to leave a comment.

Articles