Skip to content
View qarthandgi's full-sized avatar
πŸ€–
Studying LLMs
πŸ€–
Studying LLMs
  • Koi Fish Coding
  • Nashville, Tennessee, USA

Block or report qarthandgi

Block user

Prevent this user from interacting with your repositories and sending you notifications. Learn more about blocking users.

You must be logged in to block users.

Please don't include any personal information such as legal names or email addresses. Maximum 100 characters, markdown supported. This note will be visible to only you.
Report abuse

Contact GitHub support about this user’s behavior. Learn more about reporting abuse.

Report abuse
qarthandgi/README.md

Next Set of Laws... ASP.NET MVC (Coming Soon)

πŸ€– Advanced Vue.js Requires Communication, Experience and Wide & Deep Thinking πŸ’ͺ

7️⃣ Niles' 7 Laws for Vue.js

  1. SSG-first! Need More? Expand to SPA, then SSR. Don't be dictated by trends. Understand business needs and sensibly conclude an architecture.

  2. Even if your use case does not warrant a build step....consider it! Utilizing SFC (Single-File Components) is imperative to abiding by SOLID principles and coding in Vue's philosophy.

  3. Composition API > Options API. No Discussion needed. After countless Vue 2 ➑️ Vue 3 migrations, converting to the Composition API has been the single best benefit to developer productivity, code organization, and utilizing best software architecture principles.

  4. Utilize Pinia early for state management. Don't resort to hand-rolling state management composables, data will become scattered and multiple sources of truth will emerge.

  5. Utilize null and undefined values on Attribute Bindings to dynamically remove HTML attributes from elements. It's one of those swiss-army knife tricks that helps in advanced templating. (Careful of the empty string ''.)

  6. Dynamic Arguments are a killer feature for abstract template creation polymorphic components - particularly in complex SPA applications with high interactivity & complexity, such as 3D, blueprints, maps and more. (I'm thinking custom event listeners, defined by outside state rather than defined on the template.)

<button type=submit @[neededEvent]="triggerPolymorphicEventHandler">Create Model</button>
  1. Utilize generic definitions over type annoations when utilizing TypeScript with ref()

Preferred

const name = ref<string | array>('niles')

Only use when your type is needed in other TypeScript logic

const name: Ref<string | array> = ref('niles')

πŸ€– Advanced Laravel Isn't For The Weak πŸ’ͺ

πŸ”Ÿ Niles' 10 Rules for Laravel:

  1. Events-Driven Architecture is awesome...until it isn't.

  2. Embrace Modules, Engines, and other monolithic organization units

  3. Interfaces are your friend. They provide clarity, extensibility, and make documentation easier.

  4. Use the Service Container to your advantage. Think about how your classes, engines, and service classes will be used via the service container at the beginning.

  5. Model Events are dangerous. I know it's controversial...but I've seen it fail too many times. If you do it, it should always be class based. It makes testing against it easier - architecture testing via Pest.

  6. Utilize Model Permission Guards Extensively. Lock down database access based on roles and permissions.

  7. TDD is King. I know it sucks, but you will be better off.

  8. Be extremely wary of Livewire, it is tempting to transfer business logic to Livewire view classes.

  9. Be extremely wary of Inertia.js. It makes life easy at the beginning. Some of its limitations cause problems later on.

  10. Embrace the Manager Pattern, it's powerful...if you use it for good.

Pinned Loading

  1. contacts-cloud contacts-cloud Public

    A unique approach to ☎️ contact management.

    JavaScript

  2. devtournament devtournament Public

    SQL SKILLS!

    JavaScript

  3. laravel-prime laravel-prime Public

    Everything you need to create the greatest Laravel project of your life.

    PHP

  4. second-queue second-queue Public

    Elixir Queue Service, Storing and Outputting Received Values at Regular Interval

    Elixir