<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>Forem: Florian</title>
    <description>The latest articles on Forem by Florian (@finally_code).</description>
    <link>https://forem.com/finally_code</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F1802810%2F53e9061b-3a6d-494f-9eb9-5ad96628899c.png</url>
      <title>Forem: Florian</title>
      <link>https://forem.com/finally_code</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://forem.com/feed/finally_code"/>
    <language>en</language>
    <item>
      <title>The 3 Best Tools for API Design for Software Architects</title>
      <dc:creator>Florian</dc:creator>
      <pubDate>Sat, 20 Jul 2024 10:24:20 +0000</pubDate>
      <link>https://forem.com/finally_code/the-3-best-tools-for-api-design-for-software-architects-3odj</link>
      <guid>https://forem.com/finally_code/the-3-best-tools-for-api-design-for-software-architects-3odj</guid>
      <description>&lt;p&gt;As Software Architects, we spend a considerable amount of time reviewing code. Yet, we often overlook the critical task of discussing the structure and consistency of our API endpoints. This can be especially problematic when working with public APIs, which are notoriously difficult to change. Typical issues include:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Inconsistent data normalization&lt;/li&gt;
&lt;li&gt;Inconsistent parameter serialization&lt;/li&gt;
&lt;li&gt;Inconsistent naming conventions&lt;/li&gt;
&lt;li&gt;Inconsistent pagination&lt;/li&gt;
&lt;li&gt;Unpredictable response codes&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;API design tools can help address these issues by not only facilitating the design process but also aiding in testing and mocking APIs. Here, we explore three tools that can help software architects design more consistent and reliable REST APIs.&lt;/p&gt;

&lt;h2&gt;
  
  
  Postman
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fbruax0xmnjxeg94fwcf0.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fbruax0xmnjxeg94fwcf0.png" alt="Postman user interface" width="720" height="410"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://postman.com" rel="noopener noreferrer"&gt;Postman&lt;/a&gt; is a widely adopted tool for API design and development, offering an intuitive interface for creating, testing, and documenting APIs. It simplifies the API design process, allowing architects to quickly prototype and refine their designs.&lt;/p&gt;

&lt;p&gt;One of Postman’s strengths is its collaborative features, which enable teams to work together on API projects. Its comprehensive testing capabilities ensure API functionality and performance. However, integrating Postman’s API designs into technical specifications can be cumbersome, often requiring additional steps or tools. Additionally, an account is required to use Postman, with some advanced features only accessible through paid plans.&lt;/p&gt;

&lt;p&gt;While Postman offers many features, it provides limited guidance on enforcing best practices for API design. Architects may need to rely on their own expertise or supplementary resources to adhere to industry standards. The tool’s extensive features can also present a steep learning curve for new users.&lt;/p&gt;

&lt;p&gt;Despite these considerations, Postman remains a popular tool in the API development ecosystem. We will delve into how to start designing APIs with Postman, highlighting its key features and strategies to overcome its limitations.&lt;/p&gt;

&lt;h2&gt;
  
  
  Stoplight
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fkjgeqaeql9i7pryfbgle.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fkjgeqaeql9i7pryfbgle.png" alt="Stoplight user interface" width="720" height="445"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://stoplight.io" rel="noopener noreferrer"&gt;Stoplight&lt;/a&gt;.io is a robust API design and documentation platform, popular among developers. It provides tools for designing, modeling, and documenting APIs, all within a visual and user-friendly interface.&lt;/p&gt;

&lt;p&gt;Stoplight excels with its integrated development environment, which allows seamless transitions through different API lifecycle stages. It supports OpenAPI (formerly Swagger) specifications, ensuring compatibility with various API tools and frameworks. Stoplight also includes features for mock servers and API testing.&lt;/p&gt;

&lt;p&gt;However, an account is required to use Stoplight.io, which can be a hindrance for larger teams. While the platform offers an array of features, it gives limited guidance on implementing API design best practices. Architects may need to use their own knowledge or external resources to ensure their APIs adhere to industry standards.&lt;/p&gt;

&lt;p&gt;New users might find Stoplight’s interface and feature set complex, contributing to a steeper learning curve. Additionally, since Stoplight was acquired by SmartBear in 2021, there has been some uncertainty about its future direction due to overlapping features with SmartBear’s SwaggerHub product.&lt;/p&gt;

&lt;h2&gt;
  
  
  API Fiddle
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fccaxe7cc5f9vem5v8pzr.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fccaxe7cc5f9vem5v8pzr.png" alt="API Fiddle screenshot" width="720" height="478"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://api-fiddle.com" rel="noopener noreferrer"&gt;API Fiddle&lt;/a&gt; is a platform dedicated to designing and refining REST(ish) APIs, focusing on best practices and technical writing. It allows for seamless sharing of API definitions with larger teams without the need for user accounts, enhancing collaboration and accessibility.&lt;/p&gt;

&lt;p&gt;The tool is free to use and offers extensive guidance on parameter serialization, pagination, and structuring responses. Its opinionated nature ensures adherence to industry standards, making API Fiddle an excellent choice for both individual architects and teams aiming to produce high-quality API designs.&lt;/p&gt;

&lt;p&gt;API Fiddle stands out for its ability to enforce best practices, which helps maintain consistency across API endpoints. This makes it a valuable tool for software architects committed to designing reliable and maintainable APIs.&lt;/p&gt;

&lt;h2&gt;
  
  
  Final words
&lt;/h2&gt;

&lt;p&gt;Each of these tools offers unique features and capabilities that can assist software architects in creating consistent and robust API designs. By leveraging these tools, architects can address common issues and ensure their APIs meet high standards of quality and reliability.&lt;/p&gt;

</description>
      <category>systemdesign</category>
      <category>softwareengineering</category>
      <category>softwaredevelopment</category>
    </item>
    <item>
      <title>5 Essential Tools for Software Architects to Enhance Their Technical Writing</title>
      <dc:creator>Florian</dc:creator>
      <pubDate>Sat, 20 Jul 2024 08:57:04 +0000</pubDate>
      <link>https://forem.com/finally_code/5-essential-tools-for-software-architects-to-enhance-their-technical-writing-2i7b</link>
      <guid>https://forem.com/finally_code/5-essential-tools-for-software-architects-to-enhance-their-technical-writing-2i7b</guid>
      <description>&lt;p&gt;As a software architect, your ability to communicate complex system designs, architectural decisions, and technical strategies is crucial for project success. Effective technical writing not only helps your team understand and implement your vision but also showcases your expertise to stakeholders and management. This can significantly impact your career growth and influence within the organization.&lt;br&gt;
While strong writing skills are fundamental, leveraging the right tools can elevate your technical documentation to new heights. In this post, we'll explore 5 free tools that every software architect should consider incorporating into their technical writing workflow.&lt;/p&gt;

&lt;h2&gt;
  
  
  1. TLDraw: Visualizing High-Level Architectures
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fbrmmf8nlvoyugg7wrk4u.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fbrmmf8nlvoyugg7wrk4u.png" alt="Image description" width="800" height="568"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="//tldraw.com"&gt;tldraw&lt;/a&gt; is a modern, open-source digital whiteboard application that's invaluable for software architects. Its sleek interface and powerful features offer a seamless experience for sketching system architectures, creating component diagrams, and visualizing complex software ecosystems.&lt;br&gt;
Key benefits for architects:&lt;/p&gt;

&lt;p&gt;Quickly draft and iterate on high-level system designs&lt;br&gt;
Collaborate in real-time with team members on architectural concepts&lt;br&gt;
Create clear, visually appealing diagrams for presentations and documentation&lt;/p&gt;

&lt;h2&gt;
  
  
  2. SequenceDiagram: Illustrating System Interactions
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F0om7qmbh599unon3uj1v.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F0om7qmbh599unon3uj1v.png" alt="Image description" width="800" height="599"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="//sequencediagram.org"&gt;sequencediagram.org&lt;/a&gt; is an essential tool for software architects to create and manage sequence diagrams. This web-based application offers a streamlined approach to visualizing complex process flows and system interactions.&lt;br&gt;
Key benefits for architects:&lt;/p&gt;

&lt;p&gt;Easily document API flows and microservice interactions&lt;br&gt;
Demonstrate system behavior and communication patterns&lt;br&gt;
Enhance technical specifications with clear, standardized UML diagrams&lt;/p&gt;

&lt;h2&gt;
  
  
  3. Api Fiddle: Designing and Documenting APIs
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fqdlndjb2izb67drfvgfm.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fqdlndjb2izb67drfvgfm.png" alt="Image description" width="800" height="531"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://api-fiddle.com" rel="noopener noreferrer"&gt;api-fiddle.com&lt;/a&gt; is a powerful platform for API design and documentation. For software architects, this tool simplifies the process of defining, testing, and showcasing API designs that align with architectural principles.&lt;br&gt;
Key benefits for architects:&lt;/p&gt;

&lt;p&gt;Design RESTful APIs that adhere to best practices&lt;br&gt;
Generate interactive API documentation for development teams&lt;br&gt;
Create visually appealing API screenshots for technical presentations&lt;/p&gt;

&lt;h2&gt;
  
  
  4. Ray: Sharing Code Snippets with Style
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fhq9n1qg7ub7428pftltt.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fhq9n1qg7ub7428pftltt.png" alt="Image description" width="800" height="513"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://ray.so" rel="noopener noreferrer"&gt;ray.so&lt;/a&gt; transforms code snippets into shareable images. This tool is excellent for software architects who need to highlight specific implementation details or architectural patterns in their documentation.&lt;br&gt;
Key benefits for architects:&lt;/p&gt;

&lt;p&gt;Create visually appealing code examples for design patterns and best practices&lt;br&gt;
Enhance technical presentations with stylized code snippets&lt;br&gt;
Share key implementation details in a format that stands out in documentation&lt;/p&gt;

&lt;h2&gt;
  
  
  5. DbDiagram: Modeling Database Architectures
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fp8ksh5b1ooz65gdqezjy.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fp8ksh5b1ooz65gdqezjy.png" alt="Image description" width="800" height="421"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://dbdiagram.io" rel="noopener noreferrer"&gt;dbdiagram.io&lt;/a&gt; is a user-friendly online tool for visualizing and sharing database schemas. For software architects, this platform is crucial for designing and documenting data models that underpin system architectures.&lt;br&gt;
Key benefits for architects:&lt;/p&gt;

&lt;p&gt;Quickly create and iterate on database designs&lt;br&gt;
Generate SQL scripts from visual diagrams for different database systems&lt;br&gt;
Collaborate with database administrators and developers on data architecture&lt;/p&gt;

&lt;p&gt;By incorporating these tools into your workflow, you can significantly enhance the clarity and impact of your architectural documentation. Whether you're designing system components, illustrating complex interactions, or presenting data models, these tools will help you communicate your architectural vision more effectively.&lt;/p&gt;

&lt;h2&gt;
  
  
  Final words
&lt;/h2&gt;

&lt;p&gt;Remember, as a software architect, your ability to articulate and document your designs is just as important as the designs themselves. Leverage these tools to create compelling, clear, and professional technical documentation that will drive your projects forward and showcase your expertise.&lt;br&gt;
What tools do you find indispensable in your role as a software architect? Have you used any of the tools mentioned in this post? Share your experiences and recommendations in the comments below, and let's continue to elevate the standard of architectural communication in our field.&lt;/p&gt;

</description>
      <category>webdev</category>
      <category>softwareengineering</category>
      <category>systemdesign</category>
      <category>career</category>
    </item>
    <item>
      <title>Create beautiful dark-mode screenshots of REST(ish) API definitions</title>
      <dc:creator>Florian</dc:creator>
      <pubDate>Thu, 18 Jul 2024 17:44:26 +0000</pubDate>
      <link>https://forem.com/finally_code/create-beautiful-dark-mode-screenshots-of-restish-api-definitions-1k1l</link>
      <guid>https://forem.com/finally_code/create-beautiful-dark-mode-screenshots-of-restish-api-definitions-1k1l</guid>
      <description>&lt;p&gt;The prevalence of a "writing culture" in big tech companies often surprises new hires. Engineers suddenly find themselves authoring various documents, including API specifications. While tools exist for database diagrams (dbfiddle) and code snippets (jsfiddle), describing API endpoints remains challenging for many.&lt;/p&gt;

&lt;p&gt;This post introduces &lt;a href="https://api-fiddle.com" rel="noopener noreferrer"&gt;api-fiddle&lt;/a&gt;, a tool designed to simplify API definition creation and sharing in technical documents. In this post I want to focus on one of api-fiddle's features in particular: generating visually appealing screenshots of REST-like API definitions.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;How to create the PNG&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;How to Create API Definition Screenshots&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Visit api-fiddle.com&lt;/li&gt;
&lt;li&gt;Select or create an API endpoint&lt;/li&gt;
&lt;li&gt;Define the endpoint details (method, path, parameters, headers, response)&lt;/li&gt;
&lt;li&gt;Click the sparkle icon in the top-left corner (see provided screenshot)&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Ft1nph71ugyygmn4zsqs6.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Ft1nph71ugyygmn4zsqs6.png" alt="Screenshot of icon" width="800" height="400"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Tips for Effective API Definition Screenshots&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Keep definitions concise to fit within the image&lt;/li&gt;
&lt;li&gt;Use clear, descriptive parameter and header names&lt;/li&gt;
&lt;li&gt;Include common status codes (200, 400, 401, 404, etc.)&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The api-fiddle screenshot feature streamlines the process of sharing API designs, enhancing the clarity and professionalism of your technical documentation. By providing a visual representation of API endpoints, it bridges the gap between written specifications and actual implementation.&lt;/p&gt;

</description>
      <category>programming</category>
      <category>tutorial</category>
      <category>restapi</category>
      <category>systemdesign</category>
    </item>
  </channel>
</rss>
