Documentation - docs.apidsl.com ✍
- Sourcecode - bash.apidsl.com
- Contribution - contribution.apidsl.com
- Examples - examples.apidsl.com
- Blog - www.apidsl.com
- LICENSE
About ✍
One of the benefit of modularization is to have a modular architecture with independent modules from a programming language, so we present here an example langauge the APIDSL, which bring together different languages on shell level
I did last time some wrapper for bash, python, … with such format: load(“domains.txt”)
load("domains.txt")
.split("/n")
.http()
.xpath("title")
.appendToFile("titles.txt")
I am using it to build multiplatform scripts, where the same sentence will be executed on PHP, Python, JS, …
The Inspiration was coming from such projects:
- jQuery, DOM Traversal and Manipulation
- Apache Camel uses a Java Domain Specific Language or DSL for creating Enterprise Integration Patterns or Routes in a variety of domain-specific languages (DSL)
Czym jest APIDSL
APIDSL to zwykły skrypt o niezwykłych możliwościach
- napisany w bash-u
- jako lokalny skrypt bash, po skopiowaniu z repozytorium
- jako komenda w systemie linux, po skopiowaniu do /usr/local/bin
- z zarządzaniem zalezności: install, update ze wsparciem dla dla maven, composer, node
APIDSL tworzy abstrakcyjną warstwę w multi-języklowych projektach do celów łatwiejszego re-użycia kodu bibliotek i projektów. APIDSL mapuje i uruchamia funkcje i skrypty z róznych języków programowania. Mapowanie pozwala na kierowanie strumienia danych neizaleznie od języka programowania do endpoint-u. Mapowanie skyrptów łączących się z API usług SaaS pozwala na łatwą integrację usług i tworzenie nowych. Deklaratywny zapis opisuje działanie połączonych ze sobą bibliotek i api, co pozwala na deployment i testowanie całej infrastruktury.
Ten sam zapis APIDSL pozwala w zależnośći od załadowanych zależnosć uruchomić jak i przetestować infratsrukturę.
Taki użycie kodu nie ogranicza nas do stosowania jednej technologii czy środowiska, a pozwala na łączenie najlepszych rozwiązań z różnych języków, bibliotek, frameworków, projektów opensorce czy API.
I did last time some wrapper for bash, python, … with such format: load(“domains.txt”)
I am using it to build multiplatform scripts, where the same sentence will be executed on PHP, Python, JS, …
[Programowanie imperatywne oraz deklaratywne | Codenga](https://codenga.pl/artykuly/poradniki/programowanie-imperatywne-oraz-deklaratywne) |
Programowanie imperatywne oraz deklaratywne
https://pl.wikipedia.org/wiki/Imperatyw Imperatyw (łac. imperativus – rozkazujący) – nakaz, reguła, zasada, która nie podlega dyskusji i którą można bezpośrednio wywieść z założeń teoretycznych.
Paradygmat imperatywny można opisać tak: “mówimy jak komputer ma wykonać daną rzecz”. Czyli skupiamy się na poszczególnych krokach, które prowadzą do rozwiązania problemu.
Możesz sobie wyobrazić program napisany imperatywnie jako ciąg instrukcji.
Paradygmat deklaratywny można opisać tak: “mówimy komputerowi co ma dla nas zrobić”. Ważny jest dla nas wynik jaki uzyskamy - nie wnikamy w jaki sposób komputer ten wynik. osiągnie.
Taki styl programowania pozwala skupić się więc na celu. Na tym, co chcemy osiągnąć. Mniej ważne są tutaj kroki, które do tego celu prowadzą.
The Inspiration was coming from such projects:
- jQuery, DOM Traversal and Manipulation
- Apache Camel uses a Java Domain Specific Language or DSL for creating Enterprise Integration Patterns or Routes in a variety of domain-specific languages (DSL)
Supported technologies ✍
Languages:
- js
- php
- bash
- python
Environment
- docker
- logs
Data formats
- ini
- json
- yaml
- csv
- html
- xml
About ✍
W jaki sposób opisuje Pan procesy i jak modeluje Pan zmiany, jak testuje Pan jeszcze przed wdrożeniem skutki tych zmian?
Brzmi ciekawe, jednak, w mojej ocenie to kultura pracy i niewiedza, stoi na przeszkodzie zmianom, również tym na lepsze. Często nie wchodzi się w merytoryczną dyskusję uzasadniając to brakiem czasu czy kompetencjami, a hierarchia skutecznie blokuje zmiany od wewnątrz. Odpowiedzialność za wykonanie procesu, a rozumienie zasady działania i świadomość wdrożenia zmiany to odległe planety.
słuszne uwagi, warto korzystać z luksusu zarządzania popartego wiedzą i kontrolę organizacji zautomatyzować na poziomie języka domenowego, tak zmieniamy IT w Softreck gdzie piszemy i książki i programy komputerowe.
Co do samej kultury organizacyjnej to jest ona również zależna od oprogramowania a może i nawet determinowana tym jakich partnerów i dostawców wybieramy.
Warto przemyśleć w dobie technokracji czy nie delegujemy ryzyka utraty biznesu poprzez outsourcing?
Nie jedna marka została pogrążona przez wyciek danych, jaki system operacyjny używała? Czy to przypadek, że to często usługa microsoft? Wiedza o oprogramowaniu i umiejętność wykorzystania go również zweryfikowała przydatność managerów podczas tzw. pandemii, lockdown-u i pracy zdalnej.
Kluczowe okazało się oprogramowanie.
I’m grateful for such positive feedback! #book #iac #infrastructure #apidsl
I am excited to announce the launch of my new project!
#apidsl #newproject #DSL Domain-specific language
ponieważ sam utrzymuję ponad 700 domen internetowych, a pod nimi kilkaset małych stronek, poszukiwałem rrozwiazania do automatyzacji deploymentu i monitoringu. rezultatem jest jezyk DSL, który pozwala na opisanie sieci połączeń pomiędzy usługami a tym samym przeprowadzenie wdrożenia i monitorowania usług.
Co więcej samo pisanie tej mapy powiązań można zautomatyzować, tzn, jeśli planujemy migrację to robimy mapę - zapis w języku DSL, aby w momencie uruchomienia ponownie sprawdzić na podstawie tej mapy czy infratstruktura działa to jest opis wysokopiozmowy, niezlaęzny od jezyka programowania, dlatego dopiero badam granice użycia nie wiem czy ta oferta jest trafiona, czy jest zapotrzebowanie, dlatego piszę o tym co to robi, bo zastosowań może być więcej. Samo APIDSL działa na linuxie w shellu, jest to wrapper/adapter na biblioteki, usługi w środowisku uruchomionym na systemie linux
aktualnie testowane zastosowanie: robienie zrzutów ekranów wielu stron jednocześnie, czy sparwdzanie statusów, także boty logujące się na stronach i wykonujące jakieś czynności
Celem jest automatyzacja pracy administratora infrastruktury, ale w sposób niezależny od platformy i języka programowania
mamy dostęp do wszystkiego co jest kodem, uruchamiamy to i używamy
nie jesteśmy zależni od tech-stack-a
jest to też owocem metodologii hipermodularyzacji
https://www.hipermodularyzacja.pl/
TODO: przenieść do examples przykładowo aby zrobić zrzuty ekranu setek stron wystarczy lista plików w pliku tekstowym oraz 4 komendy w jednej linii
get ✍
get dependencies from file
apidsl --get "apidsl.txt"
let ✍
let define variable
example
put ✍
put variable to the data stream
apidsl 'put("invoice","company","year")'
apidsl -l 'put("invoice","company","year")'
run ✍
run file script
run as option param
apidsl --run "test.apidsl"
run as command
apidsl 'run("test.apidsl")'
with logs
apidsl -l 'run("test.apidsl")'
get ✍
apidsl --init
LOGS ✍
LOGS
print logs for latest run
apidsl -l
get ✍
get library from url
get ✍
get library from url
apidsl --version