Мы используем Makefile думая, что нет альтернатив, что это стандарт и всё такое.
Но make это не запускалка команд, а система сборки. Мы фактически используем его не по назначению.
И на самом деле альтернатива есть! Некоторое время назад я открыл для себя прекрасный инструмент - just. Он решает все проблемы make.
just - это не система сборки как make, это именно исполнитель команд!
Больше никаких Phony Targets и табуляций, привет нормальный синтаксис и передача аргументов!!! 😎
⭐️Что умеет just:
✅ Автодокументирование команд
Не нужно делать отдельную команду с докой, просто добавь комментарий
# команда сборки
build:
...
$ just --list
Available recipes:
build # команда сборки
Команда с именем default запускается по умолчанию если не указано другое, так что я обычно делаю так:
default:
just --list
Теперь просто выполняем just и получаем доку из текущего файла.
✅ Удобная работа с переменными окружения
# загрузить из .env
set dotenv-load
# глобальная переменная
export PYTHONPATH := "./src"
# переменная для команды
test $TESTUNG="true":
pytest
✅ Передача аргументов
build target:
@echo 'Build {{target}}...'
команда запуска
$ just build dev
# Build dev...
✅ Выбор интерпретатора прямо в команде
Пример с инлайн-скриптом на python:
system:
#!/usr/bin/env python3
import platform
print(platform.system())
Эта же функция позволит выполнить скрипт как одну команду вместо перезапуска шела для каждой строки
foo:
#!/usr/bin/env sh
for file in ls .; do
echo $file
done
✅ Выполнение команды в определенной директории. Можно указать как релятивный путь так и абсолютный
[working-directory: 'backend']
build:
docker compose build
Также можно задать рабочую директорию глобально
Там еще много интересного:
- поддержка функций
- автокомплиты и интеграции
- экспрешены
- алиасы команд
- группировка команд
- альтернативы команды под разные ОС
- импорт других just-файлов
- цветной вывод
- ... и другие штуковины!
Так что вперёд - ➡️ читать доку!
Репозиторий: ➡️https://github.com/casey/just
Статья: ➡️https://www.chicks.net/reference/file_formats/just/
ЗЫ. Кажется, на Makefile я уже не вернусь)
#tools
Kalit so'zlar
Kalit so'zlar kompilyator uchun maxsus ma'nolarga ega bo'lgan oldindan belgilangan, zaxiralangan identifikatorlardir. Ular @ prefiksisiz dasturlarda identifikator sifatida ishlatilishi mumkin emas. Masalan, @if haqiqiy identifikator hisoblanadi, lekin if emas chunki bu kalit so'z bo'ladi.
👉Batafsil
👨🏫 Mentor: Abdulaziz Abduxalil-zoda
#csharp#keywords#starter#dotnet
.NET Uzbekistan Community
__________
Telegram | Instagram | Youtube
Operatorlar
Operatorlar odatda harakat yoki jarayonni (harakat va jarayonni ham bo’lishi mumkin) ifodalovchi belgidir. Ular matematika va logikani yaxshi biladigan har qanday inson uchun muammo tug’dirmaydi. Ya’ni ularning asosini aynan shular tashkil qiladi.
👉Batafsil
👨🏫 Mentor: Suxrob Xayitmurodov
#csharp#operators#starter#dotnet
.NET Uzbekistan Community
__________
Telegram | Instagram | Youtube
Ma'lumot turlari
Ma’lumotlar toifasi – bu o’zgaruvchilarning turi va xotiradan qancha joy egallashini belgilab beruvchi kerakli omil. Foydalanilgan o’zgaruvchiga to’g’ri tipni belgilash muhim vazifalardan biridir. Sababi bu orqali biz, yaratayotgan dasturimizda yuzaga keladigan ba’zi bir muammolarni oldini olishimiz, eng asosiysi vaqt tejalishi va dasturning xotiradan kamroq joy egallanishiga erishishimiz mumkin.
👉Batafsil
👨🏫 Mentor: Xondamir Abduxoshimov
#csharp#datatypes#starter#dotnet
.NET Uzbekistan Community
__________
Telegram | Instagram | Youtube
O'zgaruvchilar
Barcha dasturlash tillarida eng ahamiyatli o’rinlardan birida turadigan, hamda ko’pchilikka ilk dasturlashni boshlash chog’larida muammo bo’lishga ulgurgan, ushbu mavzu to’g’risida yaqin daqiqalar ichida tushunmovchiliklarga barham beramiz.
👉Batafsil
👨🏫 Mentor: Xondamir Abduxoshimov
#csharp#variables#starter#dotnet
.NET Uzbekistan Community
__________
Telegram | Instagram | Youtube
For operatori
Umuman olganda kod yozayotganingizda bir xil hisoblash jarayonini qayta-qayta yozish qimmatli vaqtingizni o'g'irlab sizni bezor qilishi mumkin, masalan siz “Salom, Dunyo!” jumlasini 100 marta yozishingiz zarur bo’lib qoldi.Siz uni qayta qayta yozib chiqgan bo’larmidingiz, yo’q albatta.
👉Batafsil
👨🏫 Mentor: Suxrob Xayitmurodov
#csharp#for#loop#starter
.NET Uzbekistan Community
__________
Telegram | Instagram | Youtube
Switch operatori
Tanlash operatori bizga bir nechta qiymatlardan, o’zgaruvchilarga to’g’ri keluvchi qiymatni tanlashda va uni ishga tushirishda ishlatiladi. Misol uchun, hafta kunlarini raqamidan topish topshiriq sifatida berildi. Ularni bemalol topishimiz mumkin, lekin kompyuterga uni qanday tushuntiramiz?
👉Batafsil
👨🏫 Mentor: Suxrob Xayitmurodov
#csharp#switch#choice#starter
.NET Uzbekistan Community
__________
Telegram | Instagram | Youtube
IF-ELSE
C# dasturlash tilida if-else lar bilan tanishamiz (Men tanishman siz tanishasiz) Biz hayotda juda ko’p if va else ni ishlatganmiz. “IF” so’zi o’zbek tiliga “Agar” deb tarjima qilinadi. Keling avval ifni o’zini o’rganib olaylik : Misol: “Agar bir qop pulim bo’lsa, albatta ularni hammasini yoqib yuborgan bo’lar edim”.
👉Batafsil
👨🏫 Mentor: Sobirjonov O'tkirbek
#csharp#if#else#conditions#starter#dotnet
.NET Uzbekistan Community
__________
Telegram | Instagram | Youtube