Смысл в DI есть, потому что привязки интерфейса к реализации централизуются в одном месте — конфигурации DI-контейнера, где их очень легко и просто менять, а не размазываются по всему коду.
Строго говоря, и DI, и SL — это способы реализации более общего паттерна IoC, Inversion of Control. Pimple, как тут уже сказали, ближе к SL, с минимальной обвязкой для создания «провайдеров» в виде анонимных функций. Зависимости, как видно в статье, всё равно придётся разрешать вручную. Полноценный DI же разрешает зависимости автоматически, как правило, с учётом полифорфизма подтипов (как раз те привязки интерфейсов к реализациям). Не могу сказать, насколько это реализуемо в PHP, поскольку я его не знаю, но в языках вроде Java для этого приходится использовать отражение. Языки с более продвинутой системой типов дают дополнительные средства, вроде self-type annotations в Scala.
Ясно. Очень здорово, везёт вам) у нас же матёрый энтерпрайз — кое-где ещё 1.5 используется(
А почему вы выбрали именно Groovy, а не, например, Scala или Clojure? Из-за схожести с Java синтаксисом?
Спасибо, очень интересно. Уже некоторое время интересуюсь JavaFX, в планах статья про использование JavaFX из Scala, а вот WebView не удалось пока пощупать.
Я заметил у вас на скринах, что вы уже используете Java 8. Как ощущения от новой версии языка? Не страшно его использовать? Релиз ещё через почти через полгода. Хотя сейчас, наверное, там API уже не должен сильно меняться.
Да, так работает джава, с этим ничего не поделаешь. Чтобы пользоваться плюшками 64-битной архитектуры (вроде потенциальных эксабайтов памяти), нужно использовать 64-битную JVM.
и запускать phpStorm через батник
У меня сильное подозрение, что вы что-то не так делаете. Не могу, конечно, сказать насчёт phpStorm, но IDEA даёт два экзешника для запуска среды — idea.exe и idea64.exe, и вот как раз idea64.exe запускает 64-битную JVM. Размер памяти при этом правится в idea64.exe.vmoptions. Никаких батников, никаких проблем.
Нет, вполне нормально, на самом деле. Из контекста вроде не выбивается и стилистически корректно — в русской речи так достаточно часто выражаются. Говорю вам как дипломированный переводчик :)
Строго говоря, в java.nio есть классы для асинхронного (с Java7) и неблокирующего на основе селекторов (c Java 1.4) ввода-вывода. С файлами, правда, нельзя работать с помощью селекторов, а с сокетами — ещё как можно.
Я прошу прощения, не подумайте, пожалуйста, что я придираюсь или считаю чужие средства, мне правда интересно. Может быть, я чего-то недопонимаю.
Вы написали:
Например, типичное рабочее место нашего верстальщика — не самый новый iMac и куча софта Adobe, стоимостью как еще один iMac. Корректоры довольствуются Mac Mini c офисными пакетами. Редакторы — теми же Mini, плюс InDesign.
Насчёт верстальщика я, в принципе, могу понять — я под властью стереотипа (ну или не стереотипа, не могу сказать), что дизайнерский софт лучше всего под маки. Однако, если я не ошибаюсь, корректоры и редакторы работают с текстом а не непосредственно дизайном.
Если я не ошибаюсь, опять же, Mac Mini это только системный блок, к нему нужен ещё монитор и периферия. Самый дешёвый Mac Mini, по информации с сайта re:Store, стоит 24 490 рублей. Пусть хороший монитор стоит 6 тысяч, плюс периферия, итого 32к за компьютер (это при условии, что взят самый дешёвый Mini, а не тот, что за 40к).
Сейчас нормальный системный блок для офисного компьютера (напомню: если я правильно понимаю, задача корректоров и редакторов — работа с текстом, общение с авторами, т.е. ничего сверхтребовательного к ресурсам) можно взять примерно за 10к + тот же монитор и периферия итого 16-17к. Разница в цене в два раза. Умножаем на количество корректоров и редакторов, вы их число не сказали. Учитываем то, что чинить и поддерживать стандартный PC дешевле, чем маки, особенно маленькие (прошу меня поправить, если я здесь не прав). Получается, что на парке компьютерной техники можно нехило сэкономить.
Собственно, в этом и вопрос. В чём необходимость закупаться достаточно дорогими маками на всех?
Ещё раз прошу прощения — не подумайте, что я придираюсь или пытаюсь к чему-то прицепиться. Мне правда интересно.
В билайне убитую симку восстановили по паспорту + простые вопросы типо частых номеров
Оч странно, я восстанавливал билайновскую сим-карту пару раз (один раз — очень старую, второй раз — сдохшую от «обрезания»), и паспорта было достаточно, ничего про звонки не спрашивали.
Хотя мб в Украине другие правила.
Не очень удачный перевод, на самом деле. Оригинал — «He wasn't the one», это не значит «не был единственным», это, скорее, ближе к «он был не тем». Ну имеется в виду такое же ощущение, как от работы в Google.
1. Да, наверное. Я так полагаю, что это для демонстрации возможности.
4. Ну это от реализации зависит. Даже в Java Set это просто Map, у которого используются только ключи.
Да, это правильно. В более-менее свежих версиях языка шедулер переключает горутины при системных вызовах. От for { } не спасает, а вот for { fmt.Println("...") } уже не будет отбирать основной поток.
Да, это нормально, но только для английского текста. Для русского — совсем не нормально. В этом и заключается работа переводчика, делать так, чтобы «было нормально» на русском)
А почему вы выбрали именно Groovy, а не, например, Scala или Clojure? Из-за схожести с Java синтаксисом?
Я заметил у вас на скринах, что вы уже используете Java 8. Как ощущения от новой версии языка? Не страшно его использовать? Релиз ещё через почти через полгода. Хотя сейчас, наверное, там API уже не должен сильно меняться.
Эм. А можно поподробнее?
Да, так работает джава, с этим ничего не поделаешь. Чтобы пользоваться плюшками 64-битной архитектуры (вроде потенциальных эксабайтов памяти), нужно использовать 64-битную JVM.
У меня сильное подозрение, что вы что-то не так делаете. Не могу, конечно, сказать насчёт phpStorm, но IDEA даёт два экзешника для запуска среды — idea.exe и idea64.exe, и вот как раз idea64.exe запускает 64-битную JVM. Размер памяти при этом правится в idea64.exe.vmoptions. Никаких батников, никаких проблем.
java.nio
есть классы для асинхронного (с Java7) и неблокирующего на основе селекторов (c Java 1.4) ввода-вывода. С файлами, правда, нельзя работать с помощью селекторов, а с сокетами — ещё как можно.Вы написали:
Насчёт верстальщика я, в принципе, могу понять — я под властью стереотипа (ну или не стереотипа, не могу сказать), что дизайнерский софт лучше всего под маки. Однако, если я не ошибаюсь, корректоры и редакторы работают с текстом а не непосредственно дизайном.
Если я не ошибаюсь, опять же, Mac Mini это только системный блок, к нему нужен ещё монитор и периферия. Самый дешёвый Mac Mini, по информации с сайта re:Store, стоит 24 490 рублей. Пусть хороший монитор стоит 6 тысяч, плюс периферия, итого 32к за компьютер (это при условии, что взят самый дешёвый Mini, а не тот, что за 40к).
Сейчас нормальный системный блок для офисного компьютера (напомню: если я правильно понимаю, задача корректоров и редакторов — работа с текстом, общение с авторами, т.е. ничего сверхтребовательного к ресурсам) можно взять примерно за 10к + тот же монитор и периферия итого 16-17к. Разница в цене в два раза. Умножаем на количество корректоров и редакторов, вы их число не сказали. Учитываем то, что чинить и поддерживать стандартный PC дешевле, чем маки, особенно маленькие (прошу меня поправить, если я здесь не прав). Получается, что на парке компьютерной техники можно нехило сэкономить.
Собственно, в этом и вопрос. В чём необходимость закупаться достаточно дорогими маками на всех?
Ещё раз прошу прощения — не подумайте, что я придираюсь или пытаюсь к чему-то прицепиться. Мне правда интересно.
Оч странно, я восстанавливал билайновскую сим-карту пару раз (один раз — очень старую, второй раз — сдохшую от «обрезания»), и паспорта было достаточно, ничего про звонки не спрашивали.
Хотя мб в Украине другие правила.
4. Ну это от реализации зависит. Даже в Java Set это просто Map, у которого используются только ключи.
for { }
не спасает, а вотfor { fmt.Println("...") }
уже не будет отбирать основной поток.