Giter Site home page Giter Site logo

deviq-gatsby's Introduction

DevIQ Gatsby

A gatsby static site for DevIQ.com.

Dev Containers

If you don't have Node, NPM, or Gatsby installed locally, don't panic! We have Development Containers configured in the .devcontainer folder. These allow you to run your apps in containers locally. You can also use these with Visual Studio Code. You do need to have Docker running in order to use the container.

The Dockerfile starts with a Node image that we need for this repo. It also installs the Gatsby CLI tooling.

Local Dependencies

If you do want to run this locally and not within a dev container, you will want to have the following installed:

Build Locally

To build locally, install the gatsby command line tools:

npm install -g gatsby-cli@latest-v4

Next, run these commands:

npm install --legacy-peer-deps

gatsby build
gatsby serve

You may also need to run this to clean up local cached files:

gatsby clean

When you're doing active development, run:

gatsby develop

This will build the site and watch the folder for changes, automatically updating as changes are detected.

Adding Frontmatter to a File

This project has a .vscode folder checked in. There is a snippet within that folder to make it easier to insert the frontmatter into a new page.

Within VS Code:

  1. Bring up the Command Palette.
  2. Search for Snippets: Insert Snippet
  3. In Workspace Snippets, select the snippet named deviq-template.

Exporting Mermaid Diagrams to SVG

You can use mermaid-cli to convert Mermaid diagrams to SVG. This is how we create Mermaid graphs with links.

SVG is XML under the covers and can be styled and edited.

deviq-gatsby's People

Contributors

aldeonmoriak avatar antoniosbarotsis avatar ardalis avatar chensokheng avatar dependabot-preview[bot] avatar dependabot[bot] avatar ilyanadev avatar imgbotapp avatar kylemcmaster avatar lamby777 avatar mialkin avatar sadukie avatar shawn-fetanat avatar snowfrogdev avatar youssef1313 avatar zzfima avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar

deviq-gatsby's Issues

Domain Events

  • Design Pattern

  • DDD Pattern

  • Reference Pre/Post persistence events in WeeklyDevTips (YouTube)

Add announcement div at top of page

Initial version can be static for site.

Eventually I'd like to be able to change it per section (design patterns, ddd, etc.)

Something like this:
image

Site Stats

Can we get stats on things like:

  • How many pages?
  • Maybe how many pages by category?
  • Are we tracking other metrics?

Add a promo box on the right

Add a promotion box on the right that can be used to link to Pluralsight, Amazon recommended books, NimblePros, or whatever.

Add Terms Page

I noticed the other sections have their own dedicated pages which you can navigate to subtopics from. Terms is missing this page but has topics beneath it so it'd be worth adding a page for listing those individual items on.

image

Add Constantine's Law

"A structure is stable if cohesion is high, and coupling is low." - Larry Constantine

This is quoted in the book Monolith to Microservices: Evolutionary Patterns to Transform Your Monolith by Sam Newman (O'Reilly)

The initial quote comes from Larry Constantine's Structured Design (1963).

Add Rule Engine Pattern

Link to Pluralsight course.

Include this info:
Q: Is it violating Open Closed principle if the rule returns a value that includes extra information (whether or not rules are short circuited) (I've got a combination of First match and aggregation)

A: No that’s probably fine. If your engine code gets too complex maybe you create types representing the different kinds of rules and/or their results that let you Replace Conditional with Polymorphism.

Q: In the case of ordered rules, is it wrong to pass (and change) contextual information from one rule to the next?

A: Not wrong but makes me think Chain of Responsibility might be a good fit.

(and make sure Chain of Responsibility is in our pattern list as well) #290

Add searchability

Add ability to search the content - can use Google with site:DevIQ.com

Replace 'other' with 'terms'

  1. Replace folder path and nav for Other section at bottom with Terms.
  2. Update the production redirect file to redirect from the /other/foo links to the new /terms/foo links.
  3. Move Singleton to Design Patterns and add redirect(s) and fix any direct links to it.

Mediator Design Pattern

Add the pattern
Reference from Domain Events
Reference from any other place where we mention MediatR.

Question on Patterns organization

@ardalis With the growth in pattern ideas, do all of these get put in design patterns? Do we break them up to something like Design Patterns, Data Patterns, and Testing Patterns?

For example, I want to include some of the data patterns that I am used to working with, but they are specifically related towards data.

#315 mentions a pattern that is specifically to testing.

As we start to grow, it may make sense to break these out more.

Add new section, Laws

Add a new section for Laws. Start with a placeholder Law:

  • Murphy's Law

It should appear in the nav below Terms.

Event Storming

Add Event Storming under Practices
Include a FeaturedImage
Search for the term on DevIQ and link back to this page once it exists.

CQRS

Add a principle describing CQRS.

Add Tools Page

I noticed the other sections have their own dedicated pages which you can navigate to subtopics from. Tools is missing this page but has topics beneath it so it'd be worth adding a page for listing those individual items on.

image

Add Proper Header image and Sidebar coloring

Goal

banner.png from /static should take the place of the logo at the top of the sidebar. Currently, this logo comes from a Logo.js file in the node modules under path: node_modules/@rocketseat/gatsby-theme-docs/src/components/Logo.js This is an svg that defines a "Rocketseat" logo.

Additionally (and the solution to this is probably related to the solution to the above, so I'm including them together), the sidebar link to the current page should be highlighted in #1E73BE (blue), rather than the current purple (#8257E6, I think. Also defined in the node modules).

Notes

For some reason, this template (gatsby-starter-rocket-docs) seems to rely on the node modules for most styling. And the node modules can't really be edited and have those changes persist. So the question, really, is how to override the stylings in the node modules via changes to the main code.

Add featuredImage support in frontmatter/headings

See my blog or the NimblePros blog. I'd like to be able to show a featured image at the top of the page, and also use it in social media links, for each article. I don't want to have to manually include the image in the article's markdown.

Chain of Responsibility Pattern

Mention use with

  • ASP.NET Core Middleware
  • MediatR and pipeline behaviors

and its importance for pulling out cross-cutting concerns (and following Separation of Concerns, SRP)

Add Outbox Pattern

Link to my forthcoming article on sending emails with Outbox.

Also link my ardalis.com article to the deviq outbox pattern description.

Template Method Pattern

Saw @ardalis mention this in devBetter.

  • Create a page here for the Template Method Pattern
  • Link to the Pluralsight course that is currently linked on the Design Patterns overview.
  • Add link to our page in the navigation.
  • Update the Design Patterns overview to point to our page.

Add support for C# code highlighting

Repo currently uses Prism-React-Renderer for code highlighting, which does not natively support C#. I tried commenting out all references to prism-react-renderer and to react-live (which it is a part of) in the json files, and installing prism.js (which does support C#), but this did not change the behavior

Chain of Responsibility Pattern

Saw @ardalis mention this in devBetter.

  • Create a page here for the Chain of Responsibility Pattern
  • Add link to our page in the navigation.
  • Update the Design Patterns overview to point to our page.

The guard statements can be more explicit

Assuming the code depicted is c#, this guard clause

 if (user == null)
    {
        throw new ArgumentNullException(nameof(user));
    }

can be written as

_ = user ?? throw new ArgumentNullException(nameof(user));

... and avoid hiding the behavior of the guard in another function, like this does...

 Guard.AgainstNull(user, nameof(user));

Resharper's live templates or VS snippets make creating these statements an easy experience.

For strings an extension method that returns null if the string is null or whitespace means the discard based pattern can be used for strings.
The same can be done for empty collections

Netlify deploy to preview is broken

When Netlify runs the Deploy to Preview, it is failing on building:

11:25:17 PM: error "gatsby-plugin-mdx" threw an error while running the onCreateNode lifecycle:
11:25:17 PM: browserType.launch: Executable doesn"t exist at /opt/buildhome/.cache/ms-playwright/chromium-1084/chrome-linux/chrome

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.