qazaq in lille
426 subscribers
160 photos
5 videos
79 links
меня зовут жунисали. пишу об айти, редактировании текста и языках.

для связи: @zshanabek
Download Telegram
qazaq in lille
Как задать вопрос внутри чата, чтобы был высокий отклик Перед тем как задавать вопрос надо посмотреть туториалы в Google или Stackoverflow. Но иногда гугл ата бессилен, и на помощь приходит чат со знатоками. Обычно пользователи задают такой вопрос: Кто сделал…
Забыл привести пример вопроса для прошлого поста.

Как правильно задавать вопрос в чате:
"Здравствуйте, для решения поставленной задачи я применил типовое решение (ссылка), но в результате получил (ссылка на гист). Нагуглив этот выхлоп, я обнаружил, что данную проблему решали до меня вот таким способом (ссылка на решение). Однако в моём случае это не помогло. Прошу поделиться опытом в решении этой проблемы или помочь найти способ."

#цифровойэтикет
Митап по iOS-разработке

CocoaHeads - это мировое сообщество разработчиков iOS приложений. И оно приехало к нам. 8 мая намечается первый митап CocoaHeads в Казахстане.

Будут три докладчика. Среди выступающих есть и мой друг Бекнар, выпускник Демиреля 2019. Сейчас он делает мобильные приложения в "Колеса, Крыша, Маркет". Ислам повествует секреты работы iOS команды "Сбербанка". Нарикби из Амстердама расскажет о Test Driven Development (TDD).

Отличная возможность для iOS-разработчиков пообщаться с единомышленниками. Не часто проводятся у вас такие тематические события. Регистрация на онлайн митап.
История моего деда, который воевал на стороне французов.

Вчера была встреча Blablathé - спикинг клаба на французском языке. Темой встречи был роман "Le pommier rouge d'Almaty" (Красная яблоня Алматы). И даже сам автор Samuel Aubin был вместе с нами.

Сюжет романа выявляет забытый эпизод войны: участие советских солдат из Средней Азии во французском "Сопротивлении". Некоторым не повезло и их заставляли формироваться в немецкий легион, который состоял из представителей Средней Азии. Этот легион привел к братоубийству.

Главный герой книги Чингиз попал в плен к немцам. Потом убежал оттуда и присоединился к французам. Автор книги вчера на встрече рассказывает нам сюжет через Zoom, а я сижу и думаю: "Чувак, ты написал биографию моего деда".

Я уже писал в канале историю деда. В начале войны он тоже был в плену. Днём работал в доме богатого немца, а вечером возвращался в лагерь. Напоминает фильм "Список Шиндлера". После двух попыток он убежал из немецкого лагеря и присоединился к французским партизанам. Таким образом он был в команде генерала Шарля де Голля. Получал его прямые приказы. На войне Шанабек был ценным бойцом, потому что разговаривал на 4 языках: немецкий, итальянский, русский и французский. В основном ему поручали передать письма по разным фронтам. В группе из 3-х человек путешествовал по Европе. Переходил Альпы, чтобы доставить письмо в Италию. За время войны объехал 10 стран.

Услышав вчера эту историю, Самюэль снова захотел заняться этой темой, а другие помогли мне найти больше информации. Вот ссылки на предыдущие посты:

- Взятие в плен. Поход от Белоруссии до Германии
- Работа на кухне немецкого концлагеря
- Побег из лагеря
- Конец войны. Предложение от американцев переехать в США

#историяшанабека
Путь для начинающих веб-девелоперов:

- HTML & CSS. Делай статичные сайты.

- Javascript делает те сайты живыми.

- Напиши их с чистым минимальным кодом, используя Javascript фреймворки: Angular, React. Это фронтенд.

- Теперь нам нужен бэкенд. C#, Python или NodeJS.

- Обязательно нужна база данных! SQL, MongoDB.
MEAN стэк

Сейчас популярен MEAN стэк. Стартапы Долины активно его используют в своих проектах. Стэком называется набор инструментов, технологий, использующихся для создания ПО. От слова stack. Есть также LAMP стэк. Но сегодня поговорим про MEAN.

M - mongodb
E - express.js
A - angular
N - nodejs

Эксперты идеально скомбинировали эти технологии в один стэк. Преимущество MEAN в том, что его компоненты написаны на одном языке - JavaScript. Начнем с самого низа.

Mongo - эта нереляционная база данных. Он хранит данные проекта. Нереляционная означает, что внутри нее данные не связаны (no relation). В SQL есть связи между данными поэтому он называется реляционным. Особенностью MongoDB является то, что данные сохраняются в виде JSON документов. Он идеально подходит для MEAN, потому JSON - это стандарт хранения данных в JS.

NodeJS создан для разработки бэкенда. Мы привыкли думать, что JS работает только внутри браузера. Но с появлением NodeJS игра поменялась. Он уже замещает Python и php. На NodeJS создают внутреннюю часть сайта - бэкенд. Его логику, то что не видит пользователь. Задача ноды: брать данные с Mongo, затем отправлять их к клиенту (браузер, Angular). Обмен данными происходит в виде JSON.

Express - это фреймворк для nodejs. Он работает с роутами. Представьте, юзер вводит ссылку. Тут начинается запрос на сервер. Express ловит этот запрос от клиента с помощью роутов.

Angular - фронтенд фреймворк. Он нужен для написания внешней оболочки сайта: дизайн, анимация, кнопочки. Ангуляр позволяет разделить проект на компоненты. Это отдельные модули, которые не зависят друг от друга. Так удобнее. На голом JS такое не получится и это геморройно. Ангуляр разработан Гуглом и написан на Typescript. Typescript - это разновидность JavaScript, разработанная Майкрософтом.

Сделаем summary.
Mongo - база данных
Express - бэкенд фреймворк для NodeJS
Angular - фронтенд фреймворк
NodeJS - язык бэкенда

Так сложилось, что MEAN - идеальная комбинация технологий. Хотя тут можно бувку A поменять на другую технологию. Например, React или Vue. MERN, MEVN. Не получится досканально рассказать про стэк в одном посту. Люди пишут книги про MEAN.
Логотипы четырех компонентов стэка в одном ряду
Отправляем сообщения, которые не побескоют собеседника

В телеграме можно отправлять сообщения, когда юзер будет онлайн.

Проблема: Представьте, что вам нужно написать кому-то ночью. Скорее всего ваш собеседник сейчас спит. Если не напишите, то забудете. Вы отправляете сообщение с надеждой, что он прочитает его утром. Но он просыпается от уведомления.

Решение: Перед отправлением сообщения долго нажимайте на иконку отправления. Появятся 3 опции. Выберите опцию "Когда будет в сети". После этого юзер получит сообщение только тогда, когда откроет приложение. #цифровойэтикет
Сегодня последнее воскресенье мая, а значит надо отметить 1538-летие Киева. С днём рождения, Киев!
Нельзя вставлять ссылку на первые слайды презентации

При создании презентации проекта, нельзя вставлять ссылку в первый слайд. А то слушатели пойдут зырить проект, в то время как они должны зырить на вас.

Скриншот сделан из первого слайда реальной презентации. Помню я только открыл слайд. Через секунду все присутствующие в зале открыли телефоны и начали тестировать продукт. Пришлось 7 раз обращать их внимание на доску. Но несмотря на это, мы выиграли хакатон.
Что нужно сделать, чтобы не провалить проект

- Заказчик иногда капризничает и хочет мобильные приложения и веб сразу. В таких ситуациях надо отговорить его. Не делайте мобильное приложение сразу.

Сделайте сперва веб версию. Если она залетела, то можно делать мобильное приложение.

- Если вы всё-таки начали делать мобильное приложение, не спешите нанимать iOS и Android разработчиков. Это две разные команды, два разных кода. Расход увеличивается. Достаточно нанять одну команду React Native разработчиков или обучить существующую.

React Native - это фреймворк, который позволяет выпустить приложение для двух платформ, написав один код.

- Рассчитать свои возможности. Не надо брать сразу 3 роли на себя: DevOps, Backend, Q&A.

- Нужно делать MVP.
Минимальный жизнеспособный продукт. Minimum viable product.

Однажды я с одногруппниками делал приложение для поиска квартир. Я выполнял роль бэкенда. В ТЗ описаны 4 модуля: пользователь, квартира, бронь, оплата. Представим, что каждый модуль содержит по 10 атрибутов. Для MVP достаточно трёх модулей: пользователь, квартира, бронь. И по 2-3 поля для каждого модуля, но не 10.

1. Модуль квартиры нуждается в таких атрибутах как: название квартиры, цена, свободно? Представим, что добавление 1 атрибута занимает 1 день. Значит этот модуль я завершу за 3 дня.

2. Модуль брони. Там достаточно трёх полей: check-in, check-out, id квартиры.

3. Модуль юзера: почта, пароль.

3+3+2=8. Через 8 дней мы видим результат. Такой минимальный продукт все равно будет работать. Это и есть MVP

Как было на самом деле. Остальные члены команды хотели увидеть все поля: количество гостей, кроватей, адрес, удобства. В итоге 10 полей в одной таблице. Соответственно я потрачу 10 дней на разработку одного модуля. И 30 дней на MVP. То есть целый месяц мы не видим MVP. В то время как с минимальным количеством полей мы видим MVP через неделю.