24 декабря Архивач восстановлен после серьёзной аварии. К сожалению, значительная часть сохранённых изображений и видео была потеряна. Подробности случившегося. Мы призываем всех неравнодушных помочь нам с восстановлением утраченного контента!
>>144409429 А вот на каком-нибудь питоне после С/С++ писать просто как, хуй знает, будто ты всю жизнь в очко долбился, а потом тебе про смазку рассказали и ты от этого даже удовольствие получать начал.
>>144408955 integer целочисленные float с плавающим значением string-строки пример выще это передача целого числа передадим мое имя в переменную и выведем его $name = "ophuy"; echo $name;
Короче оп, чтоб с нуля вкатиться смотришь курсы lynda.com (на ангельском) PHP with MySQL Essential Training PHP with MySQL Beyond the Basics (основы ооп)
Придумываешь себе задачку, делаешь проникаясь.
Потом подбираешь видосы по ооп на elisdn.ru (мне кажется он норм объясняет) И параллельно разбираешь фреймворк (например Yii2) не пишешь на нем какую-то хуйню, а выясняешь, как он работает. Начиная с класса component и т.д. У elisdn на эту тему тоже был видос. Потом уже пробуешь что-то писать на фреймворке
>>144409599 >Речь по PHP, остальное - оффтопик Потому что ты так сказал? Здесь Б, о чём хотим, о том и пиздим, твой ПОХАПЕ ссаный и неинтересный, а вот микроконтроллеры тема.
MySQL не нужен. 7 лет в PHP, до сих пор MySQL не нужен. Разве что базу в Wordpress перенести. Но Wordpress - еще та штучка. В голом PHP можно на одном сайте в цикле создать 1 млн статических страниц из которых гуглом будут проиндексированы 20 тысяч, которые принесут ежесуточно 200 уников, которые принесут 100 рублей на партнерках.
>>144409723 Блин, мне пиздец как мне не охота виртуальный сервер ставить чтобы показать тебе. Выше я ссылку на кидал. Там даже дебил разберется. А свои примеры у меня накрылись когда я винду переставлял. Хотя может еще что-нибудь осталось, ща поищу.
>>144410085 Осталось, надо же. Начнем с основ - вывод формы с строками имя, фамилия, отчество и кнопкой подтвердить. html: <form action="app/shortName.php" method="post">
if ($name == null or $surname == null or $patronymic == null) echo "Вы не все ввели."; else { echo $surname, " "; echo substr($name, 0, 1), ". "; echo substr($patronymic, 0, 1), "."; }
?> >>144410247 >github Для дебилов не способных даже внести изменения в собственный код ничего не сломав при этом хотя многие из них даже с гитом умудрятся таки что-нибудь сломать.
>>144410535 >Для дебилов не способных даже внести изменения в собственный код ничего не сломав при этом. >2017 год >Не использовать облачные хранилища и системы контроля версий
— Эй, я получил новый веб-проект, но, если честно, я не занимался веб-кодингом в течение нескольких лет, и я слышал, все немного поменялось. Ты же самый современный веб-разработчик, правда?
— Это теперь называется Front-End инженер, но да, я — именно он. Я работаю с вебом в 2016. Визуализации, музыкальные плееры, летающие дроны, которые играют в футбол, все что угодно. Я только что вернулся из JsConf и ReactConf, так что я знаю новейшие технологии для создания веб-приложений.
— Круто. Мне нужно создать страницу, которая отображает последние действия со стороны пользователей, так что мне просто нужно получить данные от REST и отобразить их в какой-то фильтруемой таблице, ну и обновлять её, если что-то изменится на сервере. Я думал, может быть, использовать JQuery для извлечения и отображения данных?
— О, Мой Бог! Нет! Никто больше не использует JQuery. Ты должен попробовать React: это — 2016!
— Интересно. Что такое React?
— Это — очень крутая библиотека, сделанная ребятами из Facebook. Она реально дает полный контроль и повышает производительность приложения, позволяя очень легко обрабатывать любые изменения представлений.
— Звучит заманчиво. Могу ли я использовать React для отображения данных с сервера?
— Ага, но сначала нужно добавить React и React DOM в виде библиотек.
— Подожди, почему две библиотеки?
— Ну, одна — это сама библиотека, а вторая — для манипулирования DOM, который ты теперь можешь описать в JSX.
— JSX? Что такое JSX?
— JSX — это просто расширение синтаксиса JavaScript, который выглядит очень похоже на XML. Это своего рода еще один способ описать DOM. Думай о нем, как об улучшенном HTML.
— Что случилось с HTML?
— Это 2016. Никто больше не пишет на сыром HTML.
— Ну хорошо. Если я добавляю эти две библиотеки, то я могу использовать React?
— Не совсем. Нужно добавить Babel, а затем можно использовать React.
— Другая библиотека? Что за Babel?
— О, Babel — это транспайлер, он позволяет ориентироваться на конкретные версии JavaScript, в то время как пишешь код в любой версии JavaScript. Тебе не обязательно добавлять Babel для того, чтобы писать на ReactJS, но если ты это не сделаешь, то ты застрял с ES5, ну а это 2016, ты должен кодить в ES2016+ как и все крутые чуваки.
— ES5? ES2016+? Я потерялся. Что за ES5 и ES2016+?
— ES5 означает ECMAScript 5. Это версия, на которую ориентируется большинство, поскольку она реализована в большинстве браузеров на сегодняшний день.
— ECMAScript?
— Да, знаешь стандарт JavaScript, который был основан в 1999 году после его первоначального выпуска в 1995 году? Тогда, когда JavaScript был назван LiveScript и только работал в Netscape Navigator. Это было очень запутано тогда, но, к счастью, теперь все ясно, и у нас есть 7 версий этой реализации.
— 7 версий. Серьезно. А ES5 и ES2016+ это?…
— Пятое и седьмое издание соответственно.
— Подожди, а что случилось с шестым?
— ES6? Да, каждое издание является надстройкой предыдущего, так что если ты используешь ES2016+, то ты используешь все функции предыдущих версий.
— Хорошо. А зачем использовать ES2016+ над ES6 тогда?
— Ну, ты можешь использовать ES6, но для интересных штук, типа async и await, тебе нужно использовать ES2016+. В противном случае ты застрял с ES6 генераторами и сопрограммами для блокировки асинхронных вызовов и нормального управления потоком.
— Я понятия не имею, что ты только что сказал, и все эти имена запутаны. Слушай, я просто хочу загрузить кучу данных с сервера, просто подключить JQuery из CDN и просто получить данные с помощью AJAX. Почему я не могу сделать это?
— Чувак, это 2016. Никто не использует JQuery больше, это заканчивается кучей запутанного кода. Все же это знают.
— Ясно. Так что моя альтернатива — это загрузить три библиотеки для извлечения данных и отображения таблицы HTML.
— Ну, ты включаешь эти три библиотеки, но связываешь их с менеджером модулей, чтобы загрузить только один файл.
— Понятно. А что за менеджер модулей?
— Определение зависит от окружающей среды, но для веба мы обычно подразумеваем все, что поддерживает модули AMD или CommonJS.
— Хорошооооо. А AMD и CommonJS это?…
— Определения. Есть куча способов, чтобы описать, как несколько библиотек и классов JavaScript должны взаимодействовать. Ты можешь написать несколько файлов JavaScript, определяющих API AMD или CommonJS, и использовать что-то вроде Browserify, чтобы связывать их.
— Хорошо, имеет смысл… наверное. А что такое Browserify?
— Это инструмент, который позволяет связать CommonJS описанния зависимостей для файлов, которые могут быть запущены в браузере. Он был создан, потому что большинство людей публикуют эти зависимости в NPM.
— NPM?
— Это очень большое общественное хранилище, где умные люди постят код и зависимости в виде модулей.
— Как CDN?
— На самом деле, нет. Это больше похоже на централизованную базу данных, где каждый желающий может опубликовать и скачать библиотеки, так что ты можешь использовать их локально для разработки, а затем загрузить их на CDN, если захочешь.
— О, как Bower!
— Да, но это 2016, сейчас никто больше не использует Bower.
— Хм, ясно… так мне нужно загрузить библиотеки из NPM?
— Да. Например, если ты хочешь использовать React, то загружаешь модуль React и импортируешь его в коде. Это можно сделать для почти каждой популярной библиотеки JavaScript.
— Angular это слишком 2015. Но да. Angular тоже там есть, наряду с VueJS, RxJS и другими интересными библиотеками из 2016. Хочешь узнать о них?
— Давай придерживаться React, я уже узнал слишком много о нем. Так что, если мне нужно использовать React, я вытяну его из этого NPM, а затем использую Browserify?
— Да.
— Это кажется слишком сложным, чтобы просто взять кучу зависимостей и связать их вместе.
— Ага, именно поэтому ты используешь менеджер задач, типа как Grunt или Gulp, или Broccoli для автоматизации запуска Browserify. Ты даже можешь использовать Mimosa.
— Grunt? Gulp? Broccoli? Mimosa? Черт возьми, о чём мы говорим сейчас?
— Task менеджеры. Но они уже не такие крутые. Мы использовали их в стиле 2015 с Makefiles, но теперь мы перешли на Webpack.
— Makefiles? Я думал, что в основном это используется для C или C++ проектов.
— Ага, но, видимо, в вебе мы любим делать вещи сложными, а затем вернуться к основам. Мы делаем это типа каждый год. Ты подожди, через год или два мы еще запилим сборки (assemblies) в вебе.
— Пффф. Ты упомянул что-то под названием Webpack?
— Это другой менеджер модулей для браузера, в то же время он и своего рода Task менеджер. Это как улучшенная версия Browserify.
— ОК. А почему он лучше?
— Ну, может быть не лучше, но более гибкий в плане того, как зависимости связаны. Webpack позволяет использовать различные менеджеры модулей, а не только CommonJS. Например, родные модули ES6.
— Я очень запутался в этих CommonJS/ES6.
— Да все в этом запутались, но можешь больше не париться, потому что есть SystemJS.
— О, Боже, опять что-то-JS. Хорошо, а что это за SystemJS?
— Ну, в отличие от Browserify и WebPack 1.x, SystemJS представляет собой динамический модуль загрузчика, который позволяет связать несколько модулей в нескольких файлах, а не связывая их в один большой файл.
— Подожди, я думал, что мы хотели объединить наши библиотеки в один большой файл и загрузить его!
— Да, но из-за HTTP/2 несколько HTTP запросов на самом деле лучше.
— Стоять! Так чего же мы не можем просто добавить три оригинальные библиотеки для React?
— Ты, конечно, можешь добавить их в качестве внешних скриптов с CDN, но все равно нужно будет добавить Babel.
— Эх. И это плохо, не так ли?
— Да, придется включить полностью Babel-core, а это не будет эффективным для production. На production необходимо выполнить ряд предварительных задач, чтобы проект был полностью готов, а это ритуал, в сравнении с которым вызвать дьявола — это рецепт как сварить яйцо. Надо будет минимизировать файлы, сделать uglify, поиграться со стилями, подумать о загрузке скриптов…
— Понял, понял. Но если не скачивать библиотеки непосредственно с CDN, то как иначе?
— Я бы сделал транспайл из TypeScript с помощью комбо Webpack + SystemJS + Babel.
— TypeScript? Я думал, что мы пишем код на JavaScript!
— Typescript — это и есть JavaScript, или, лучше сказать, надмножество JavaScript. Более конкретно — JavaScript на версии ES6. Ну, та шестая версия, о которой мы говорили.
— Я думал, что ES2016+ — уже надмножество ES6! Почему нам сейчас нужен еще и TypeScript?
— Потому что это позволяет нам использовать JavaScript как типизированный язык и уменьшить количество ошибок во время выполнения. Это 2016, надо добавить некоторые типы в код на JavaScript.
— И TypeScript, очевидно, делает это.
— И Flow, хотя он проверяет только типы, в то время как TypeScript является надстройкой JavaScript, который нужно скомпилировать.
— Эээ… и Flow?
— Это — инструмент для проверки статической типизации, сделанный парнями из Facebook. Они написали его на OCaml, так как функциональное программирование является удивительно крутым.
— OCaml? Функциональное программирование?
— Ну это то, что сегодня юзают крутые пацаны, ну типа, знаешь, 2016. Функциональное программирование. Функции высокого порядка. Currying. Pure функции.
— Я понятия не имею, что это.
— Никто не понимает, в начале. Надо просто знать, что функциональное программирование лучше, чем объектно-ориентированное программирование, и это то, что мы должны использовать в 2016 году.
— Подожди, я учил ООП в универе, я думал, что это круто?
— Ну так было пока Oracle не купил Java. Я имею в виду, что ООП был хорош раньше, и его используют до сих пор, но теперь каждый понимает, что манипулировать состояниями эквивалентно пинанию младенцев, так что теперь все движется к immutable объектам и функциональному программированию. Ребята из Haskell уже 100 лет кричат об этом, и это я еще не упоминал Elm. Но, к счастью, в сети теперь у нас есть такие библиотеки, как Ramda, которые позволяют нам использовать функциональное программирование на простом JavaScript.
>>144411117 — Ты что, просто придумываешь имена? Что еще за Ramnda?
— Нет. Ramda. Как и Lambda. Ну, знаешь, библиотека Дэвида Чембера?
— Дэвида кого?
— Дэвида Чембера. Крутой чел. Один из авторов Ramda. Глянь еще работы Эрика Мейера, если серьезно относишься к изучению функционального программирования.
— А Эрик Мейер это?…
— Тоже функциональщик. Крутой чел. У него есть куча презентаций, где он в странной цветной футболке громит Agile. Еще глянь что делают Tj, Jash Kenas, Sindre Sorhus, Paul Irish, Addy Osmani…
— ОК. Притормози. Все это хорошо и прекрасно, но я думаю, что все это слишком сложно и ненужно для простой выборки данных и их отображения. Я уверен, что я не должен знать этих людей или все эти вещи, чтобы создать таблицу с динамическими данными. Давай вернемся к React. Как я могу извлечь данные с сервера в React?
— Ну, на самом деле для выборки данных не надо React, он отображает данные.
— О, черт. Так а что используется для выборки данных?
— Используй Fetch для получения данных с сервера.
— Использовать Fetch для выборки данных? Тот, кто называет эти вещи, нуждается в тезаурусе.
— О, да. Fetch это имя нативной реализации для выполнения XMLHttpRequests.
— О, AJAX.
— AJAX это просто запросы XMLHttpRequest. А Fetch позволяет делать AJAX на основе промисов, которые затем можно резолвить, чтобы избежать callback hell.
— Callback hell?
— Да. Каждый раз, когда выполняется асинхронный запрос, ты должен ждать его ответа, который заставляет добавить функцию внутри функции, которая называется пирамида callback hell.
— О, хорошо. А промисы решают эту проблему?
— Еще бы! Манипулируя коллбеками через промисы, ты можешь писать более понятный код, тестировать его, а также выполнять несколько одновременных запросов одновременно и ждать, пока все они отработают.
— И это можно сделать с помощью Fetch?
— Да, но только в некоторых браузерах, в противном случае необходимо включить Fetch polyfill или использовать Request, Bluebird или Axios.
— Сколько библиотек мне нужно знать, ради бога? Сколько из них?
— Это JavaScript. Тут тысячи библиотек, которые делают одно и то же. Мы знаем эти библиотеки. Наши библиотеки огрооооомные, а иногда мы добавляем картинки с Guy Fieri в них.
— Guy Fieri? Давай покончим с этим. Что эти Bluebird, Request и Axios делают?
— Это библиотеки для выполнения XMLHttpRequests, которые возвращают промисы.
— А методы AJAX JQuery не возвращают промисы?
— Мы больше не используем «J» в 2016. Просто используйте Fetch polyfill или Bluebird, Request или Axios. Затем управляй промисами с async, await и Бац!, у тебя правильный поток управления.
— Это третий раз, когда ты говоришь о await, но я понятия не имею, что это такое.
— Await позволяет блокировать асинхронный вызов, что позволяет лучше все контролировать во время получения данных и увеличивает читаемость кода. Это потрясающе, просто нужно, чтобы убедиться, что ты добавил stage-3 в Babel, или использовать синтаксис асинхронных функций и плагин transform-async-to-generator.
— Это безумие.
— Нет, безумие — что нужно перекомпилировать код TypeScript, а затем транспайлить его с Babel, чтобы использовать await.
— Шта!? Это не входит в TypeScript?
— Входит в следующей версии, но в версии 1.7 он только ES6, так что если хочешь использовать await в браузере, сначала нужно скомпилировать код TypeScript в ES6, а затем транспайлить с Babel в ES5.
— Я не знаю, что сказать.
— Слушай, это легко. Пиши весь код в TypeScript. Все модули, использующие Fetch компилируй в ES6, транспайль их с Babel с stage-3, и загружай с SystemJS. Если у тебя нет Fetch, используй polyfill, или Bluebird, Request или Axios, и обрабатывай промисы с await.
— У нас очень разные определения «легко». Так, с этим ритуалом я, наконец, получил данные и теперь я могу показать их с помощью React правильно?
— А приложение будет обрабатывать любые изменения состояния?
— Грр, я не думаю. Мне просто нужно отобразить данные.
— О, слава богу. В противном случае мне пришлось бы объяснить Flux и реализации, такие как Flummox, Alt, Fluxible. Хотя, если быть честным ты должен использовать Redux.
— Как же достали эти имена. Опять же, мне просто нужно отобразить данные.
— А, если просто отобразить данные, не надо начинать с React. Можно взять движок шаблонов.
— Ты шутишь, что ли? Думаешь, это смешно?
— Да я просто объяснил, что ты мог бы использовать.
— Стоп. Просто остановись.
— Я имею в виду, даже если просто использовать шаблонизатор, я бы все равно использовал комбо TypeScript + SystemJS + Babel на твоем месте.
— Мне нужно отобразить данные на странице, а не выполнить оригинальный фаталити Sub Zero из Мортал Комбат. Просто скажи мне, какой движок шаблонов использовать.
— Их много, с каким ты знаком?
— Уф, не могу вспомнить название. Это было давно.
— jTemplates? jQote? PURE?
— Не то. Еще один?
— Transparency? JSRender? MarkupJS? KnockoutJS?
— Другой
— PlatesJS? JQuery-tmpl? Handlebars? Некоторые люди до сих пор используют его.
— Может быть. А есть что-то похожее на последний?
— Mustache, underscore? Я думаю, что теперь даже у lodash есть шаблонизатор, но это своего рода 2014.
— Грр… возможно он был поновее.
— Jade? DustJS?
— Нет.
— DotJS? EJS?
— Нет.
— Nunjucks? ЕСТ?
— Нет.
— Чувак, никто не любит синтаксис CoffeeScript в любом случае. Jade?
— Нет, ты уже сказал Jade.
— Ну я имел в виду Pug. Я имел в виду Jade. Я имею в виду, Jade теперь Pug.
— Пф. Нет. Не помню. Какой из них ты бы использовал?
— Наверное, нативный ES6 template strings.
— Дай угадаю. Это требует ES6.
— Да.
— Который, в зависимости от того, какой браузер я использую требует Babel.
— Да.
— Который, если я хочу включить без добавления всей библиотеки, нужно, загрузить в качестве модуля NPM.
— Да.
— Который, требует Browserify или Wepback, или, скорее всего, SystemJS.
— Да.
— Который, если это не Webpack, в идеале должен управляться Task runner-ом.
— Да.
— Но, так как я должен использовать функциональное программирование и типизированные языки, я в первую очередь должен предварительно скомпилировать TypeScript или добавить этот Flow.
— Да.
— А потом отправить это на обработку в Babel, если я хочу использовать await.
— Да.
— Так что я могу затем использовать Fetch, промисы и управление потоком и всю эту магию.
— Только не забудь polyfill Fetch, если он не поддерживается, Safari до сих пор не может справиться с этим.
— Знаешь что. Я думаю, мы закончим здесь. На самом деле, я думаю, я закончил. Я закончил с этим вебом и с JavaScript в целом.
— Хорошо, через несколько лет мы все будем кодить в Elm или WebAssembly.
— Я просто хочу вернуться к бэкэнду. Я не могу справиться со всеми этими изменениями, версиями, изданиями, компиляторами и транспайлерами. Сообщество JavaScript безумно, если оно думает, что кто-то может идти в ногу с этим.
— Понятно. Тебе тогда надо попробовать сообщество Python.
Я так понял, что тут есть аноны занятые в вебе. Поясните за заработок на сайте. Платят именно за клики по рекламе или за просмотры тоже? Я просто сам очень редко кликаю на банеры и как-то трудно верится в то, что это делает так много человек и это может приносить доход.
>>144411205 Хуй знает, к нам приходят люди и платят денюжку за то чтобы пользоваться нашей системой, никаких банеров и прочей лажи, плюс контракты с отдельными фирмами с персональным обслуживанием, брендованием итд.
>>144411418 Ну я лично понимаю. И вообще я ему выше по треду ссылку на сайт кидал где все это подробно разжевывается на очень похожем примере. >>144411461 Захочет разобраться - разберется, всеравно рано или поздно ему придется это сделать.
>>144411805 Да, учи массивы, они чаще пригождаются.
>>144411852 Ну а хули, давай ему сразу использование анонимных классов с трейтами в них давать, все равно рано или поздно придется. Начинать надо с начала!
>>144412268 Малаца, потом покури логические операторы. Алсо самое западло в контексте массива - isset проверка на член массива по ключу будет ЛОЖНА если член не задан и если у него значение null - это немного неожиданная хуйня. Просто держи в уме когда заполняешь/чистишь массивы или ставишь им какие-то дефолтные значения.
var_dump(isset($array[0])); //тру, он есть var_dump(isset($array[1])); //фолс, он нулл, но он есть! var_dump(isset($array[2])); //тру, он есть var_dump(isset($array[3])); //фолс - его нет
>>144413816 Не, медленный просто. Медленнее чем связка if () { ; } else if () { ; } else if () { ; } ... else { ; } Поэтому его не рекомендуют использовать.
>>144414542 Дохуища это сколько? Если больше 10 хотя 10 это уже много, имхо то ты делаешь что-то не так и тут по нормальному нужно уже массивы юзать и математику подключать.
>>144415022 То есть ты считаешь нормальны использовать for для условия вида if () { ; } else if () { ; } else { ; } Тебе не кажется что это долбоебизм? Меня учили так: правильность>наглядность>краткость>все остальное.
>>144415476 >>144415598 А потом кому-то придется такое говно дебажить и трахать себе мозг над вопросами как оно вообще работает и что за извращенец это писал.
>>144415855 Ваше Дизассемблершество пишет код со скоростью улитки под наркозом который никто кроме таких же ретроградов как ты даже пытаться не станет забирать ибо чем учить мертвые языки проще переписать все на с или крестах.
>>144418739 Ну типа хитровыебанная инициализация массива или функция должна вернуть несколько значений. А чо в пхп массив копируется целиком при передаче? это же дичь какая то в плане накладных расходов и памяти
>>144419099 Если функция должна вернуть больше одного значения - ты делаешь что-то не так. Массив скорее всего копируется, а что ты хотел? Возможно это как-то оптимизируют в самом пхп.
>>144419629 Ты это... не переусердствуй за один раз. Повторяй пройденное, запили мини-проект, который по мере обучения будешь усложнять, дополнять, оптимизировать и т.д., а потом перепиливать...
>>144420013 Натянешь бутстрап какой-нить и будет тебе картинка. А то сейчас начнется обмазывание скриптами, как вот тут вот: >>144411096 >>144411117 >>144411141 Я большую часть вообще нихуя не понял.
>>144410900 Ты несешь хуйню полнейшую. С и PHP предназначены для разных, блядь, зачачь! Один компилируемый, другой интерпретируемый! Это, даже не знаю, как сравнить самолет и вертолет. Для разных они задачь, нехуй их сравнивать!
Блять, почему php-то? Родина им дала NodeJS, Java, Python, Golang наконец. Нет, бля, хотим жрать говно и писать интернет магазины на битриксе до конца жизни.
>>144407275 (OP) 2017 начинать учить php, ты поехавший? очередной раз убедился что ПЭХАПЭШНИКИ аутисты после того как на работе чел с 15 годами за плечами не знает что такое git и не может пары слов на английском связать. Как вообще так можно было 15 лет прожить в русскоязычном php-манямирке!? Как ты вообще пришел к PHP, сосед по парте подсказал?
>>144423881 Не в этом дело. Дело в том что почти все что пишут на php - это интернет магазины и простенькие гостевушки. Сириус бизнес предпочитает Java, хипстеры и стартапы - NodeJS, Golang, нетакие как все -Ruby и Python. Но PHP это ж пиздец, все равно что программирование на 1с. И да, modern php development - это только название, на самом деле все по старому с большим желанием натянуть современные паттерны на умирающий ЯП.
>>144423832 Ок, давай напиши мне фреймворк уровня Express на C. Может быть ты программируешь как боженька или ссылку скинешь на него, буду признателен.
>>144423891 Вот именно. Если оп читает, и тем более школьник и просто хочет хоть в чем-то разобраться я б сказал посмотри go ммммаксимум простой, можно и в байтоебство попробовать и строгая типизация есть. Или же пойти старомодным путем и начать с C можно и с плюсами ибо докучи говна написано на нем и поможет лишний раз познакомиться с основами.
Если честно немного боюсь поколения, которое будет начинать с js и оставаться на нем.
>>144425157 Развился комплекс неполноценности от того что я не могу нормально скомпилировать приложение на nodejs. А golang охуенный язык, для расширения кругозора, и вообще, плюсов по сравнение с любым язык_нейм предостаточно.
>>144425357 А нахуя ты тогда в треде про веб программирование C предложил? Или это не ты был? Вообще нахуй ты здесь? Уходи. Или оставайся. >>144425492 Предложи альтернативу, чтобы не сочувствовать. ЯП с тем же спектром задач, интересно послушать.
>>144425611 >А нахуя ты тогда в треде про веб программирование C предложил? Меньше учить всякого говно правда требуется мозг ибо иногда приходится писать на низком уровне >Или это не ты был? Или не я, а может и я. >Вообще нахуй ты здесь? 1. Мне скучно. 2. Пыху я тоже изучал, но применить на практике ее я так и не смог, востребована только в связке с жс, html и с кучей фреймворков в нагрузку. Учить мне все это говно было очень не охота поэтому я решил попробовать С, узнал про микроконтроллеры и подсел конкретно на это дело.
>>144426341 Нодопетухи скажут, что можно делать все. По факту годится только для веб задач по пропуску данных. Нормальный бэкэнд крупные компании переводят на другие языки. Взять хотя бы Netflix, Uber.
>>144426892 The core of our web tech stack is built on top of Node.js, which has a large and vibrant community of web engineers. Node.js allows us to share JavaScript code between client and server to create universal (isomorphic) web applications.
>>144427083 Не знаю насколько хорошо это реализовано. Я не занимаюсь микроконтроллерами. Просто есть хайп и js пытаются просунуть даже туда где Javascript более антипаттерн, чем здравое решение. Мое мнение такое - пусть будет, когда-нибудь возможно можно будет пользоваться Javascript всюду где только можно, но перед этим нужно сделать компилятор.
>>144426868 >Веб Рельсы куда лучше это делают, а Феникс наступает на пятки. Единственное, где нода незаменима - это фронт, вот тут да, это исключительно её предназначение теперь.
>>144428016 >больше мегабайта Значит микроконтроллеры уже не подходят под эти цели в лучшем случае у тебя будет 16кб(atmega16), в худшем 1кб(attiny1320).Хотя лично мне 8кб(atmega8) хватает за глаза. Кстати луа говно, как я не пытался его распробовать так у меня ничего и не вышло.
>>144428097 Рельсы? Это которые умерли еще в позапрошлом году? >Какой-то маркетинговый термин Нормальный термин. >Erlang толсто пиздец, попробуй тоньше. >Как бы встаёт закономерный вопрос: нахуя? Жабы мало что ли? Это сильно разные языки с сильно разными задачами. Там где жаба - монолит, nodeJS - микросервисы. >>144428148 >Профита от изоморфности никакого по факту. А по факту вариантов выстрелить себе в ногу с js на бэкэнде в разы больше. >>144428148 >Профита от изоморфности никакого по факту. А по факту вариантов выстрелить себе в ногу с js на бэкэнде в разы больше. Профиты не от изоморфности а прежде всего от очень простого распаралеливания и евентлупа. Изоморфность скорее проблема чем плюс.
>>144428314 Смотри, мне нужна wifi бричка за 200 рублей чтобы передавать килобайты в минуту. Если я буду покупать wifi модуль для ардуины то я просру деньги и габариты. А так - взял esp12 подрубил к ардуиноАЙДИ набыдлокодил и работает. В том же esp12 уже больше мегабайта. Что предлагаешь делать?
>>144428453 >Это которые умерли еще в позапрошлом году? >Нормальный термин. >>Erlang >толсто пиздец Больше читай своих хайповых новостей. Завтра тебе напишут, что JS умер, побежишь весь код переписывать?
>Там где жаба - монолит, nodeJS - микросервисы. Какие микросервисы на десктопе и микроконтроллерах, и как вообще архитектурный паттерн связан с конкретной технологией, приём?
>простого распаралеливания и евентлупа Поясни. Что это и зачем? Имеет ли оно вообще какой-то смысл вне нодовской архитектуры? Т.е. в чем плюс-то?
>>144428453 >>Профита от изоморфности никакого по факту. А по факту вариантов выстрелить себе в ногу с js на бэкэнде в разы больше.
Рельсы живут себе поживают. Далеко не все идеально и требует допила для нормального состояния. Для блога/дефолт чата считай готово из коробки, остальное напильником можно доделать. Херач в Go Erlang/Elixir для остального, где дохера производительность нужна.
Иметь кучу микросервисов это на самом деле дохуя проблем, если честно, то никогда не видел нормальную систему из микросервисов, везде где-то да зарыта жопа, модники ебаные наподнимали тему про микросервисы.
Про изоморфность ответил лишь потому, что кто-то вкинул это как плюс nodejs
EventLoop это патерн. На нем основана работа ноды. Суть в том, что у тебя есть некая очередь задач, которые выполняются "асинхронно". Ты говоришь: "вытащи данные из бд". Это ставится в очередь, когда -то там обрабатывается, потом тригерится ивент, что задача выполнена. В местах где ты вызываешь такие асинхронные функции, ты можешь указать "подождать завершения рабоы" и только после продолжить выполнение кода. Под коробкой это реализовано на C++ в отдельных потоках.
По итогу, Есть очередь задач. Она просматривается раз в какое-то время. Не пуста - выполнять. Выполнено - уведомить о выполнении.
>>144428710 И переплатил в 2 раза, кода можно было купить вайфай модуль в 2 раза с аналогичными характеристиками но с меньшим объемом памяти, у этому приплюсуй еще цену самой ардуины и всей периферии к ней, когда тот же программатор для AVR можно собрать за 3 копейки. Правда код уже тогда придется писать на Сшке.
>>144428991 >Больше читай своих хайповых новостей. Завтра тебе напишут, что JS умер, побежишь весь код переписывать? Проектов на эрланге раз два и обчелся. Так что тут ты все таки неправ, мало кому он нужен. >Какие микросервисы на десктопе и микроконтроллерах, и как вообще архитектурный паттерн связан с конкретной технологией, приём? Речь про веб программирование прием. >Поясни. Что это и зачем? Имеет ли оно вообще какой-то смысл вне нодовской архитектуры? Т.е. в чем плюс-то? Тебе объяснить что такое паралельные вычисления или что такое эвентлуп? Чета не хочу тебе это объяснять, на википедии довольно понятно написано. Конечно имеет смысл вне нововской архитектуры, мало того, паралельные вычисления и эвентлуп есть в таких языках как Python, Golang, C# и полагаю что в Java тоже есть.
>>144429044 Если ты не видел это не значит что нет, а значит что ты не видел. Думаю что микросервисная архитектура оправдана когда проект большой и чтобы избежать большой связности частей, выполняющиих разную работу нужно их делить.
>>144429407 Так-то я знал, но всё это на одном ядре. С вебом прекрасно и без ивентлупа справляются, а жесткий риалтайм всё равно не на ноде надо делать.
>>144429459 Вообщем я считаю что оправдано. Покупать более современные и дешевые контроллеры, нежели дрочить PIC контроллеры. Мы же не для промышленности работаем. сам перебрался с атмег на STM32. Суть примерно та же, только дешевле и мощнее.
>>144429672 Ну да. Это звучит логично. А по факту когда смотришь на большую часть ваяний систем выходит, что а тут у нас проблемы с синхронностью деплоя, а тут вылазят несовместимости, ой а тут куча говна отвалилась, а тут мы почему-то 1 базу юзать пытаемся на кучу независимого говна, тем самым ломая остальное.
Можно это с большего все решить. Я лишь намекал, что в node community это уже best practice. Тебе нужно чихнуть - а отлично, сделай новый сервис который умеет чихать.
>>144430193 >Эликсир, не слышал? Да, слышал и что? >Я жабу упомянул в контексте десктопа и микроконтроллеров, какое веб-программирование. Ясно, видимо ты говоришь не о том о чем обсуждалось.
>>144429523 И да, повторю свой вопрос, раз уж ты про веб-программирование: как архитектурный паттерн связан с конкретной технологией? Кто мешает сделать на технология-нейм микросервисы?
>>144430320 Изкоробочность, наверное. Ничто не мешает, просто где-то это можно сделать средствами языка, а где-то придется потрудиться чтобы прикрутить нужное.
>>144407275 (OP) Ну вот как можно доверитья двачеру и прописать у себя сам на зная что? Какой-нибудь циник как надектует мне сейчас кодов, что ещё и компы моих соседей повзрываются!
>>144430280 >Да, слышал и что? И то, что охуенную вещь сделали из старого неудобного эрланга, и теперь нода объективно проигрывает в области параллельных дел.
>>144430421 Сорри, нет. Это не критерий выбора технологии, любая хрень будет заведена за 1 день.
>>144430683 >И то, что охуенную вещь сделали из старого неудобного эрланга, и теперь нода объективно проигрывает в области параллельных дел. Да, наверное поэтому эликсир не очередная поделка для хипстеров, о которой завтра уже никто не вспомнит, а инструмент, который выбирает большинство.</sarcasm> >Сорри, нет. Это не критерий выбора технологии, любая хрень будет заведена за 1 день. Дивный манямир. Напиши давай на C вот это:>>144424217 , посмотрим что у тебя там заводится. Скорее всего конечно же хуй тебе за щеку.
>>144430927 Лол, это как раз про ноду твой сарказм. Жс на браузер завязан практически полностью, а нода - это всего лишь обслуга фронта. Я серьёзно лично ещё ни одного здравого бэкенда на ноде не видал за 6 лет.
>Напиши давай на C вот это А че сразу на C? На эликсире том же или на рельсах нормально всё поднимется.
>>144431421 >Лол, это как раз про ноду твой сарказм. Жс на браузер завязан практически полностью, а нода - это всего лишь обслуга фронта. Я серьёзно лично ещё ни одного здравого бэкенда на ноде не видал за 6 лет. >Я Это лишь говорит о твоем кругозоре. >А че сразу на C ясно-понятно
>>144432096 Что из личного? Из личных охуенно написаных проектов что ли? Да я хуй простой по сравнению с людьми, которые ноду используют так как надо. Тем более выебываться полупустым гитхабом не хочу.
>>144432223 Ну и всё тогда, кругозор диваныч. Я тебе говорю с высоты своего маленького опыта: нода - это не то, на чем делают серьёзные вещи. Да, её используют много где на подхвате, ей на заре хайпа начали играться огромные компании на свои бесконечные бабки, но в жизни она в 80% случаев собирает фронт, и это не просто так, а потому что другие задачи она выполняет неважно.
>>144432485 >Ну и всё тогда, кругозор диваныч >Я тебе говорю с высоты своего маленького опыта поделил на ноль просто) Обоссывал бы я тебя тут если бы у меня были такие крутые собственные проекты? Конечно же нет.
>>144432725 Да то что мне тебя не переубедить. Я говорю что бекенд на ноде используют большие компании, которые пишут идеальный код, на который ты так дрочишь, а ты мне говоришь что таких нет, потому что их нет у меня и ты не видел. Разговор зашел в тупик по-моему, твоя аргументация слишком хороша, мне не справиться.
>>144432833 Нет, ну я серьёзно. Если они, эти компании, пишут такой охуенный код - где вся побочная деятельность? Статьи, презентации, бест практисы, вся хуйня? Чето я не наблюдаю много материалов именно по ноде именно в приложении к бэкенду. Там как раз хипстеры на гитхабах, и wontfix'ами погоняют.
>>144433124 Да, специально я не искал, но подписан на разнообразные кодерские рассылки, и вот в них чет не вижу почти ничего по теме. В основном если что-то и всплывает, то какая-нибудь энтрилевельная статья уровня "запускаем API на экспрессе для мобильного приложения Я и моя сраная кошка".
>>144427766 Ненавижу динамическую типизацию. У меня товарищ - адепт js, а я сам на жабе пишу. Так этот пидр меня доебал, что указание типа у него - архаизм, интуитивно понятней без этого. Как хорошо, что этот долбаеб не работал с сишкой и не выгружал постоянно память, а то бы вообще поехал.
>>144424379 знакомься с программированием через с\с++ и переходи на js. В чем проблема то? в универах ( большинстве) программа все еще устаревшая, а значит дают с\с++\асм\делфи всякие , мож java еще.
>>144426868 >IOT >микроконтроллеры >десктоп >nodejs Взвизгнул в голос. А потом удивляются, почему текстовый редактор отжирает 4 гига оперативки из восьми и тормозит на i7.
сервак уже поставил