О, идея!
Испльзовать ORM-фреймворк — отличная методология создания свой БД.
Сначала пишешь при коннекте «DBI:itsmysql:database=test;host=localhost» — устраняешь все ошибки, затем другие и другие ошибки.
Еще интересен вариант сочетания http/2 и defer: загрузка скрипта и парсинг HTML — могут происходить одновременно, а запуск произойдет в момент, когда HTML будет готов, но раньше, чем это произошло бы при синхронном формировании запросов скриптов по ходу парсинга.
Помимо рекламы вашего сервиса (кстати, сайт нормально не грузится), польза от подобного обзора стремится к нулю. Нет ни сравнения цен, ни сравнения фич. Я использую low code development для своих проектов. Для меня критические факторы — это возможность скачать весь код к себе и полностью уйти с платформы в сулчае необходимости, а так же цена пакета и его возможности. У вас в обзоре нет даже этого, не говоря о более детальных факторов — только общие слова о каждом проекте, которые никак не помогут в анализе и никак не сузят поле выбора.
Как можно что-то вообще объяснять новичкам, снимая при этом видео, и не использовать хотя бы git log --graph?..
Советую новичкам ungit, не кормить сразу читать книги.
Есть решения которые позволяют стилизовать даже без написания функций под каждый стиль.
Например в SKStyleKit используется описание стилей в виде JSON файла и в общем случае кода не приходится писать вообще.
Конфиги и сокеты разделены по отдельным папкам, все счастливы. Оно не совсем официальное, но по сути это собранные под убунту пакеты из debian unstable. Аккуратно, может притащить с собой libssl с отключенным SSLv3 для клиентской части, лечится прибиванием гвоздями apt-pin libssl1.0.0 из основных реп.
Я не против ручной сборки, но ИМХО это для проектов, где есть ресурсы чтобы заниматься этим каждый раз при выходе CVE-шек, а для простых смертных лучше нормально обновляющийся репозиторий.
Так, ничего не мешает ручками скачать, проверить хеш и собрать новый php.
Структура простая: /opt/php-7.0/
/opt/php-7.1/
/opt/src/тут-все-сырцы
Ну и systemctl ляля php-7.0-fpm.service systemctl ляля php-7.1-fpm.service
Текущему админу не нужно ломать голову, так как все запускается после старта виртуалки автоматом и автоматом папочки на ремдиске делаются. Если же ему надо будет что-то перезапустить, что вместо ковыряния консоли он запускает mc, следом заходит в /usr/ssi14/ и там пачка скриптов для запуска, статусов и прочего + завтра добавлю ручной бекап (если ему надо сделать до или после того, как автоматический сработает).
И, самое приятное, мне не зачем забивать на этот контакт, так как есть вероятность других совместных проектов, где я сам займусь серверной частью. Поэтому сервер будет периодически проверяться.
Ну и… сейчас в unstable ветке 7.0.15 и 7.1.1, 7.0.16 & 7.1.2 доступны только с сайта, на момент этого коммента.
Далее, я придерживаюсь политики, что лучше всего ставить софт из пакетов, из репы… пока это не оказывает проблем.
А проблема: попробуйте поставить из коробки 7.0.16 + 7.1.2 через apt-get или aptitude (я к последней привык, и приложил усилие отвыкнуть от первой).
Уверен, что решение будет длиннее, чем собрать их ручками, «скопировать файлики» в init.d и в system, подцепить их и… systemctl ляля php-7.0-fpm.service systemctl ляля php-7.1-fpm.service
как я писал выше.
легко ориентироваться по зависимостям модуля при помощи ctr+click
А что меншает допустим также и например сервисы запрашивать в явном виде?
import './careers.component.scss';
import {Component, BaseClass} from '_global_common_angular';
import Crud from './../shared/crud.service';
import Profile from './../profile/profile.service';
@Component({
__filename
})
export default class extends BaseClass {
static $inject = [
Crud.$name,
Profile.$name,
...
constructor(Crud, Profile, ...) {
super({Crud, Profile, ...});
...
PS Я предпочитаю использовать TypeScript пусть даже только как трайспайлер вместо Babel. Он работает немного быстрее, код генерирует более красивый (для меня), тянет меньше npm зависимостей.
Если под автозагрузкой вы имели в виду загрузку модулей по требованию, у нас используется такая схема:
// bundle-loader автоматически оборачивает контент модуля в require.ensure
const handler = require('bundle-loader?lazy!app/components/' + moduleName + '/index.js');
handler((module) => {
// плагин ocLazyLoad регистрирует модуль и его зависимости в angular
$ocLazyLoad.load({ name: module.default });
});
Вместе с роутингом схема выглядит немного сложнее, используется свойство resolve у $stateProvider.
Так же сегодня мигрировали на Webpack 2, трудности возникли только с ngInject — ng-annotate-loader перестал работать, но вместо него отлично подошел babel плагин angularjs-annotate.
Production сборка стала значительно быстрее, а вот от tree shaking эффекта не заметили :)
Не видел этот пример, так что не скажу почему автор написал именно так, но никто не запрещает создать строку напрямую:
let mut abc = String::new();
Это будет действительно немножко эффективнее чем инициализация пустой строкой:
let mut abc = String::from("");
Но может автор хотел заодно показать этим примером, как можно создать не только пустые строки, но и с заданным текстом.
Если очень сильно заботится о производительности, то можно предположить сколько текста будет на входе и выделить память заранее:
Испльзовать ORM-фреймворк — отличная методология создания свой БД.
Сначала пишешь при коннекте «DBI:itsmysql:database=test;host=localhost» — устраняешь все ошибки, затем другие и другие ошибки.
Еще интересен вариант сочетания http/2 и defer: загрузка скрипта и парсинг HTML — могут происходить одновременно, а запуск произойдет в момент, когда HTML будет готов, но раньше, чем это произошло бы при синхронном формировании запросов скриптов по ходу парсинга.
Узнал про script, буду пробовать. Раньше бы сделал скриншот или фотку :)
Заметка про замену табов\пробелов — для этого есть специальные тулзы. Но можно и через универсальный tr, как у вас.
Вместо того, чтобы слепо следовать указаниям непонятного супер-программиста Марка (который тоже может ошибаться), я предпочитаю заставлять всех своих программистов следовать стандартам кодирования, разработанными не самыми мелкими и уважаемыми организациями. Так больше вероятность, что выработанные ими стандарты логичны. Например NASA и JPL регулярно публикуют стандарты кодирования Си. Сейчас у них есть и Java.
http://homepages.inf.ed.ac.uk/dts/pm/Papers/nasa-c-style.pdf
http://lars-lab.jpl.nasa.gov/JPL_Coding_Standard_C.pdf
http://www.havelund.com/Publications/jpl-java-standard.pdf
Советую новичкам ungit,
не кормитьсразу читать книги.Тогда уж лучше GitExtensions.
Например в SKStyleKit используется описание стилей в виде JSON файла и в общем случае кода не приходится писать вообще.
Конфиги и сокеты разделены по отдельным папкам, все счастливы. Оно не совсем официальное, но по сути это собранные под убунту пакеты из debian unstable. Аккуратно, может притащить с собой libssl с отключенным SSLv3 для клиентской части, лечится прибиванием
гвоздямиapt-pin libssl1.0.0 из основных реп.Я не против ручной сборки, но ИМХО это для проектов, где есть ресурсы чтобы заниматься этим каждый раз при выходе CVE-шек, а для простых смертных лучше нормально обновляющийся репозиторий.
Структура простая:
/opt/php-7.0/
/opt/php-7.1/
/opt/src/тут-все-сырцы
Ну и
systemctl ляля php-7.0-fpm.service
systemctl ляля php-7.1-fpm.service
Текущему админу не нужно ломать голову, так как все запускается после старта виртуалки автоматом и автоматом папочки на ремдиске делаются. Если же ему надо будет что-то перезапустить, что вместо ковыряния консоли он запускает
mc
, следом заходит в/usr/ssi14/
и там пачка скриптов для запуска, статусов и прочего + завтра добавлю ручной бекап (если ему надо сделать до или после того, как автоматический сработает).И, самое приятное, мне не зачем забивать на этот контакт, так как есть вероятность других совместных проектов, где я сам займусь серверной частью. Поэтому сервер будет периодически проверяться.
Ну и… сейчас в unstable ветке 7.0.15 и 7.1.1, 7.0.16 & 7.1.2 доступны только с сайта, на момент этого коммента.
Далее, я придерживаюсь политики, что лучше всего ставить софт из пакетов, из репы… пока это не оказывает проблем.
А проблема: попробуйте поставить из коробки 7.0.16 + 7.1.2 через apt-get или aptitude (я к последней привык, и приложил усилие отвыкнуть от первой).
Уверен, что решение будет длиннее, чем собрать их ручками, «скопировать файлики» в init.d и в system, подцепить их и…
systemctl ляля php-7.0-fpm.service
systemctl ляля php-7.1-fpm.service
как я писал выше.
А что меншает допустим также и например сервисы запрашивать в явном виде?
PS Я предпочитаю использовать TypeScript пусть даже только как трайспайлер вместо Babel. Он работает немного быстрее, код генерирует более красивый (для меня), тянет меньше npm зависимостей.
Много идей подчерпнул из отличного шаблона NG6 starter, рекомендую.
По поводу экспорта имени модуля, вы это имели в виду?
Если под автозагрузкой вы имели в виду загрузку модулей по требованию, у нас используется такая схема:
Вместе с роутингом схема выглядит немного сложнее, используется свойство resolve у $stateProvider.
Так же сегодня мигрировали на Webpack 2, трудности возникли только с ngInject — ng-annotate-loader перестал работать, но вместо него отлично подошел babel плагин angularjs-annotate.
Production сборка стала значительно быстрее, а вот от tree shaking эффекта не заметили :)
Не видел этот пример, так что не скажу почему автор написал именно так, но никто не запрещает создать строку напрямую:
Это будет действительно немножко эффективнее чем инициализация пустой строкой:
Но может автор хотел заодно показать этим примером, как можно создать не только пустые строки, но и с заданным текстом.
Если очень сильно заботится о производительности, то можно предположить сколько текста будет на входе и выделить память заранее: