When writing backends with Go, I follow a simple pattern.
At the core there is the, well, core object, the service.
It has its own configuration struct. In this struct are all the configurations for the related services.
It is the central gateway for everything.
Connected to it on the back side are all the related services like oidc middleware, keycloak api service, the various entity repositories, validation, markup processor and so on.
Connected on the front are the various outlets, RESTful API handlers, gRPC service, SSR handlers, websocket handlers. Everything has its place and concern.
Cobra is used as the flag parser and command structure. There you have commands that reflect the outlets, restful, grpc etc.
Each of those has its own way to configure the core service. If you for instance use gin to serve RESTful data here’s where all the gin related stuff is configured and also where the database client is initialized and passed to the core service.
In the past I followed a trend that defined all the backend repositories as interfaces. This did not turn out to be the correct approach, as mental overhead is there and you can’t have proper, simple repository definitions. If you need those parts done differently, you can do that later. The main concern is getting to your goal, which is a finished, working backend. Bother with abstractions later if you have to.
Do that’s all there is to it. It’s not rocket science. This way you can have separately maintained services that you can just plug into your core service for each new backend you start writing and hopefully also finishing.
So I decided I’d drink the kool-aid and try Quasar, the supposedly one size fits all frontend development script.
It uses Vue 2 at the moment of writing. It essentially borrows the hard work of what others did and uses it to make it shine in a supposedly bright light.
Compared to Angular Vue is miles behind in just about everything.
The community is immature and reminds me of the stupidity of PHP’s around 2013.
It’s essentially most accessible for everyone and that’s why it attracts the lowlifes.
If you’re a professional developer I’d suggest you stay away from Vue and especially Quasar.
You’ll end up fighting supposed “experts” who use personal insults to not-answer questions you have.
For instance I wanted to know if they use a webview to essentially wrap the html/js/css output in a webview.
The answer was a personal attack.
Man stelle sich 1000 Menschen vor, die auf einem 24 Meter breiten Streifen entlang bewegen. Diese Menschen halten Abstand usw.
Was passiert wenn man den Streifen um 9 Meter verengt?
Ist dann die Dichte der Menschen auf diesem Streifen höher oder geringer?
Die Antwort ist natürlich wenn sich die selbe Menge Menschen auf kleineren Raum aufhält das der Abstand zu anderen Menschen kleiner wird.
Wenn ich jetzt also normalerweise um 23 Uhr spazieren gehe um den ganzen anderen Menschen auszuweichen, es jetzt aber eine Ausgangssperre ab 20 Uhr gibt, begebe ich mich in stark erhöhtes Risiko.
Ist das verständlich?
Today afrena.com was launched.
A mastodon instance and a social network for the african diaspora or you could call it an African social network.
A while back Thunderbird stopped sending out mails because of some vague error message.
I guess the postfix server was not properly configured. What I did was to update/add the following config options:
smtpd_tls_mandatory_protocols = !SSLv2,!SSLv3,!TLSv1
smtp_tls_mandatory_protocols = !SSLv2,!SSLv3,!TLSv1
smtpd_tls_protocols = !SSLv2,!SSLv3,!TLSv1
smtp_tls_protocols = !SSLv2,!SSLv3,!TLSv1
smtpd_tls_exclude_ciphers = aNULL, LOW, EXP, MEDIUM, ADH, AECDH, MD5, DSS, ECDSA, CAMELLIA128, 3DES, CAMELLIA256, RSA+AES, eNULL