Header image

How-To

Tech news

Back/Forward Cache, Hiện Đại Hay Hại Điện?

19/12/2022

160

Mục Lục

  • Back/forward cache là gì?
  • Nhận biết một trang được lưu, khôi phục từ back/forward cache.
  • Tối ưu hóa cho back/forward cache bằng Chrome DevTools
  • Những tác động của back/forward cache đối với trang web

Đã bao giờ bạn gặp trường hợp giống thế này chưa?

Bạn đang làm một website bán hàng. Khi người dùng đang ở trang thanh toán và đã điền đầy đủ thông tin tài khoản ngân hàng, tiếp theo họ chuyển đến trang giỏ hàng để cập nhật, sau đấy họ lại điều hướng trở lại trang thanh toán. Trên một số thiết bị, trang thanh toán sẽ được tải lại với form chứa thông tin tài khoản thanh toán được làm mới, nhưng trên một số thiết bị khác thì không, khi người dùng nhấp vào nút quay lại của trình duyệt, trang web trước đó sẽ không mất thời gian để tải lại mà nó sẽ xuất hiện ngay lập tức với những thông tin nhạy cảm mà người dùng đã nhập. Trên các thiết bị này, trang web đã được khôi phục từ một loại bộ nhớ đệm của trình duyệt có tên gọi là Back/forward cache. Trong vài trường hợp, việc lưu trữ nội dung của một trang web, để giúp người dùng có thể điều hướng trở lại ngay lập tức, mà không mất thời gian để tải lại như lúc ban đầu là một tính năng rất hay, hữu ích. Nhưng trong một số trường hợp khác, đấy cũng có thể trở thành bug.

Back/forward cache là gì?

Back/forward cache ( gọi tắt là bfcache) là một loại bộ nhớ đệm, giúp tối ưu hóa trình duyệt cho phép điều hướng quay lại và chuyển tiếp ngay lập tức. Nó cải thiện đáng kể trải nghiệm duyệt web cho người dùng — đặc biệt là những người có mạng hoặc thiết bị chậm hơn vì nó giúp trình duyệt có thể tải lại trang web trước đó mà không cần phải tải lại tài nguyên.

Phát hiện một trang được khôi phục từ bfcache.

Sự kiện pageshow được kích hoạt ngay sau sự kiện load khi trang web đang tải lần đầu và bất kỳ lúc nào trang được khôi phục từ bfcache. Sự kiện pageshow có một thuộc tính là persisted, nó sẽ có giá trị là true nếu trang được khôi phục từ bfcache (và ngược lại là false nếu không). Vì vậy, bạn có thể sử dụng thuộc tính persisted này để phân biệt trang được tải thông thường với trang được khôi phục từ bfcache. Ví dụ:

window.addEventListener('pageshow', (event) => {
  if (event.persisted) {
    console.log('Trang web nay duoc khoi phuc tu bfcache.');
  } else {
    console.log('Trang web nay duoc tai xuong binh thuong.');
  }
});

Nhận biết một trang có thể được đưa vào bfcache

Ngược lại với sự kiện pageshow ta cũng có sự kiện pagehide. Sự kiện pagehide này sẽ được kích hoạt khi trang được tải xuống bình thường hoặc khi trình duyệt cố gắng đưa nó vào bộ nhớ đệm bfcache. Sự kiện pagehide này cũng có một thuộc tính là persisted. Nếu giá trị của nó là false thì bạn có thể chắc chắn rằng một trang sẽ không được đưa vào bfcache. Tuy nhiên, nếu giá trị của thuộc tính này là true, nó không đảm bảo rằng một trang chắc chắn sẽ được lưu vào bộ nhớ đệm đâu nhé. Nó chỉ mang ý nghĩa là trình duyệt dự định lưu trang đấy vào bộ nhớ bfcache mà thôi, nhưng có thể có các yếu tố khiến nó không thể làm như vậy.

window.addEventListener('pagehide', (event) => {
  if (event.persisted) {
    console.log('Trang web nay *co the* duoc dua vao bfcache.');
  } else {
    console.log('Trang web nay khong duoc dua vao bfcache.');
  }
});

Tối ưu hóa cho bfcache bằng Chrome DevTools

Bộ nhớ đệm bfcache đã có trên tất cả các trình duyệt web phổ biến hiện nay nhưng hiện chỉ có Chrome là có cung cấp cho chúng ta công cụ để kiểm tra mà thôi. Công cụ dành cho nhà phát triển của Chrome có thể giúp bạn kiểm tra các trang của mình để đảm bảo chúng được tối ưu hóa cho bfcache và xác định bất kỳ vấn đề nào có thể khiến chúng không đủ điều kiện.

Tối ưu hóa cho bfcache bằng Chrome DevTools

Để kiểm tra một trang cụ thể, hãy điều hướng đến trang đó trong Chrome và sau đó trong DevTools, đi tới Application > Back/forward cache. Tiếp theo, nhấp vào nút Run TestDevTools sẽ cố gắng điều hướng và quay lại để xác định xem trang có thể được khôi phục từ bfcache hay không.

Tối ưu hóa cho bfcache bằng Chrome DevTools

Nếu không thành công, bảng điều khiển sẽ cho biết trang không được khôi phục và liệt kê lý do tại sao. Nếu lý do là điều mà bạn với tư cách là nhà phát triển có thể giải quyết, thì lý do đó cũng sẽ được chỉ ra.

Cập nhật hoặc xóa dữ liệu sau khi trang web được khôi phục bfcache

Trở lại với vấn đề mà mình đặt ra ở đầu bài viết này. Nếu trang web của bạn lưu giữ trạng thái người dùng — đặc biệt là bất kỳ thông tin nhạy cảm nào của họ — thì dữ liệu đó cần được cập nhật hoặc xóa sau khi một trang được khôi phục từ bfcache.

Một ví dụ khác, thường gặp hơn là nếu người dùng đăng xuất khỏi trang web trên máy tính công cộng và người dùng tiếp theo nhấp vào nút quay lại. Điều này có thể làm lộ dữ liệu riêng tư mà người dùng cho rằng đã bị xóa sau khi họ đăng xuất. Để tránh những trường hợp như thế này, có một vài trick có thể ngăn trang được đưa vào bfcache nhưng vẫn sẽ có những ngoại lệ, vậy nên tốt hơn hết là bạn nên luôn cập nhật lại trang sau một sự kiện pageshow nếu như event.persisted có giá trị là true.

Đoạn mã sau sẽ kiểm tra sự hiện diện của cookie dành riêng cho trang web trong sự kiện pageshow và tải lại nếu không tìm thấy cookie:

window.addEventListener('pageshow', (event) => {
  if (event.persisted && !document.cookie.match(/my-cookie/)) {
    // Bat buoc tai lai trang neu nhu nuoi dung da dang xuat.
    location.reload();
  }
});

Thống kê lượt truy cập trang web có sử dụng bfcache

Như đã giới thiệu ở phần trên, nếu một trang web được khôi phục từ bfcache thì nó sẽ không tốn tài nguyên, dữ liệu mạng, điều đó cũng đồng nghĩa với việc trang web đó đã bị mất đi một lượt truy cập nếu bạn theo dõi lượt truy cập vào trang web của mình bằng các công cụ phân tích vì hầu hết các thư viện công cụ phân tích phổ biến không theo dõi khôi phục bfcache dưới dạng số lần xem trang mới. Vậy nên, nếu bạn không biết/lường được vấn đề này thì việc giảm lưu lượng truy cập, lượt xem do bfcache gây ra sẽ ít nhiều có ảnh hưởng không tốt đến việc xếp hạng trang web của bạn, mặc dù nó giúp tăng trải nghiệm của người dùng.

Nếu bạn không muốn số lần xem trang của mình giảm xuống do trình duyệt bật bfcache, bạn có thể báo cáo số lần khôi phục bfcache dưới dạng số lần xem trang (được khuyến nghị) bằng cách lắng nghe sự kiện pageshow và kiểm tra thuộc tính persisted.

Ví dụ sau đây cho thấy cách thực hiện việc này với Google Analytics ( logic cũng tương tự đối với các công cụ phân tích khác ) :

// Gui mot luot xem khi trang duoc tai lan dau tien.
gtag('event', 'page_view');

window.addEventListener('pageshow', (event) => {
  // Gui mot luot xem khi trang duoc khoi phuc tu bfcache.
  if (event.persisted) {
    gtag('event', 'page_view');
  }
});

Tổng kết

Cái gì cũng có giá trị của nó, cũng có tồn tại những ưu và nhược điểm, bfcache cũng không ngoại lệ. Việc quay lại một trang trước đó mà không phải tải lại từ đầu là một tính năng rất hữu ích, không chỉ giúp tăng tốc độ điều hướng mà còn giảm việc sử dụng dữ liệu, vì trình duyệt không cần phải tải lại tài nguyên. Điều này giúp tăng trải nghiệm của người dùng đáng kể nhưng nó cũng tiềm ẩn rủi ro về bảo mật dữ liệu cá nhân, làm giảm lượt truy cập trang trực tuyến và một số vấn đề khác nữa. Điều quan trọng là bản thân người lập trình viên phải biết và kiểm soát được nó trong từng trường hợp, vì nếu không, trong một số trường hợp, tính năng cũng có thể sẽ trở thành bug.

Bài viết này không chỉ dành cho các lập trình viên tham khảo mà ngay cả các tester cũng có thể đưa vào trong test case của mình đặc biệt là trong các trang web có yêu cầu yếu tố bảo mật hoặc những trang có dữ liệu thường xuyên thay đổi.

Hi vọng bài viết này của mình hữu ích đối với các bạn. Đừng quên share và gắn bookmark cho bài viết này để tiện xem lại sau này nhé 😉 !

Tài liệu tham khảo

Related Blog

satellite project for healthcare management system

Success stories

+0

    A Satellite Project for Healthcare Management Systems

    In the ever-evolving landscape of healthcare, SupremeTech emerges as a beacon of innovation, dedicated to empowering healthcare centers and healthcare management systems. This journey unfolds through the art of creating satellite projects, commitment to deadlines, adaptability in action, and the extra mile with offshore development. Let's delve into how SupremeTech carefully designs each satellite project to prioritize value, precision, and adaptability in healthcare solutions. The Art of Creating Satellite Projects Understanding the need for scalability in healthcare management systems The healthcare landscape is ever-evolving, and SupremeTech has acknowledged the need for scalable solutions. In this segment, we explore the crucial role of scalability in healthcare management systems.  Healthcare Management System (CMS), which SupremeTech developed as an offshore development solution, offers you seamless access to update citizens' health information. This user-friendly platform empowers you to stay connected and informed. Moreover, our systems facilitate smooth communication between citizens and healthcare providers, enabling remote consultations and health ranking services. This not only enhances care accessibility, particularly for individuals in remote areas or with limited mobility but also elevates citizen engagement and satisfaction.Embracing citizen engagement and promoting self-care, our digitized healthcare management system instills a sense of empowerment and responsibility for personal health. Through easy-to-use interfaces and intuitive mobile applications, individuals can engage in activities that promote better health. From setting fitness goals, monitoring exercise routines, and tracking nutrition, to accessing educational resources and connecting with support communities, a digitized health management system empowers citizens to make informed decisions and adopt healthy lifestyle choices. SupremeTech's approach to create satellite projects from large-scale projects. SupremeTech's special skill is making big ideas into easy-to-handle projects. Explore how we extract satellite projects from large-scale initiatives, ensuring not just size but also adaptability and precision. Recognizing that an optimal Agile team size ranges between 7 to 10 individuals, we want to highlight that SupremeTech takes deliberate measures to imbue adaptability into each satellite project. This signifies that these projects are engineered to evolve, pivot, and effortlessly incorporate new features or modifications as necessary, guaranteeing a responsive and dynamic reaction to evolving requirements.  That's the reason why SupremeTech has decided to create a good satellite project with the Healthcare Management System (CMS) and application to adapt to new requests from clients who want to create a new health tracking system in a new city. Deadline Management: A Supreme Commitment Importance of meeting deadlines in healthcare projects. Time is a precious commodity in healthcare. The timely implementation of projects directly impacts everyone's healthcare. SupremeTech recognizes that delays can have far-reaching consequences, and meeting deadlines is not just a goal but a necessity. SupremeTech's strategies for effective project timeline management. SupremeTech makes projects that can change and adapt easily to fit different needs. We focus on making these projects precise and flexible to meet the ever-changing demands. Comprehensive Planning: The journey begins with meticulous planning. Before a project even starts, a comprehensive roadmap is laid out, detailing every milestone and task with our clients. This strategic planning allows for a clear understanding of the project scope, potential challenges, and the critical path to success.Clear Communication Channels: Communication is the key to effective project timeline management. SupremeTech establishes clear and transparent communication channels, both internally and with clients. This ensures that everyone involved is on the same page, minimizing misunderstandings and facilitating quick decision-making. Risk Management Strategies: Every project comes with inherent risks. SupremeTech, however, doesn't just identify risks; it proactively manages them. Robust risk management strategies are in place to anticipate and address potential challenges, preventing them from derailing the project timeline. Adaptability in Action In the intricate world of healthcare projects, where change is constant, SupremeTech orchestrates a seamless dance, showcasing the vital need for adaptability. As projects evolve, SupremeTech's flexibility shines through, effortlessly accommodating new requests and embracing change with unparalleled finesse. Clients witness a dynamic partner who not only keeps pace with evolving needs but actively thrives in the ever-shifting landscape of healthcare project execution. Benefits for All Explore the tangible benefits that SupremeTech's proactive approach brings to Public Health sectors, Healthcare centers, and Healthcare systems. From improved scalability to streamlined processes and enhanced employee engagement, discover how SupremeTech creates a positive impact for all. Offshore Development: The Extra Mile Dive into the technological backbone that supports SupremeTech's success. Learn how SupremeTech transcends geographical boundaries, bringing together global collaboration for unparalleled efficiency. Development systems and technologies Below are the resources and technologies we use to develop the services: Details of entrustment: Design, Implementation, Testing, Migration, Maintenance & Operation Platform: CMS, Native App Development language: PHP (Laravel), Kotlin, Swift  Let SupremeTech help you to start your healthcare management system now! As our journey concludes, embark on your adventure by visiting SupremeTech. Witness the culmination of expertise, dedication, and innovation. For a new beginning in healthcare management solutions, contact SupremeTech and be a part of a story that goes beyond success - a story of continual innovation and transformation in healthcare management. Don't wait, take the first step towards a more efficient and effective healthcare system today.

    06/12/2023

    3

    Success stories

    +0

      06/12/2023

      3

      A Satellite Project for Healthcare Management Systems

      line mini app to digital transform customer service

      Success stories

      +0

        LINE Mini App: Digital Transform Customer Service with Digital Point Cards

        SupremeTech has been on an impressive journey of building and developing, positively impacting customers. One of our recent and innovative projects involved meeting our client's request to launch digital point cards integrated in Line Mini App. These cards allow customers to accumulate points or make payments within their network of stores. Previously, our client used physical cards for this purpose. However, recognizing the potential of using digital means to encourage more transactions, they swiftly moved forward. Initiating suitable solutions for a traditional issue With a commitment to customer satisfaction and delivering the best app experience, we proved our capabilities in doing this project. Understanding the client's needs, we embarked on research to provide a viable solution for developing and maintaining a mobile application for issuing and managing digital point cards. The app enables users to effortlessly carry and use their point cards on their smartphones, with key features including card issuance, displaying corresponding barcodes, and generating one-time barcodes for transactions. Developing a Loyalty App on Line App: What Sets it Apart A unique requirement for this project was the development of a mini-app on the Line app. Line, a popular international communication and calling app developed by LINE Corporation, offers various gaming and platform applications for users' entertainment and interaction within a virtual environment. This was an entirely new platform for SupremeTech, and despite no prior experience, the team immediately dove into research. Developing the app on Line presented challenges such as limited customization options for interface and user experience, adherence to Line's regulations, and potential limitations or lack of support for specific features. Overcoming Challenges and Successfully Launching the Line Mini-App Despite these challenges, SupremeTech successfully completed the Line mini-app project. Leveraging the versatility of React and Node.js, the team maximized Line's API and SDK potential for seamless integration and interaction with Line App features. Additionally, research was conducted to combine with other systems for data retrieval. After six months of dedicated efforts, the Loyalty App on Line App was successfully released. Highlighted Features This mobile app can issue digital point cards by entering user information or linking with physical cards to display information as barcodes. Key features include: Card Issuance: Allows customers to issue digital point cards.Barcode Display: Displays corresponding barcodes for each digital point card.One-time Barcodes: Generates one-time barcodes for specific transactions or interactions. Contributing to the Business Ecosystem This technological solution significantly contributes to the current business ecosystem by optimizing customer loyalty programs. It encourages customer transactions across all business service points. The app seamlessly connects with customer data systems, ensuring a smooth experience for the business and its customers. If you want to modernize your business and enterprise ecosystem with a cutting-edge loyalty app, don't hesitate to contact SupremeTech. We're here to help your business thrive.

        05/12/2023

        10

        Success stories

        +0

          05/12/2023

          10

          LINE Mini App: Digital Transform Customer Service with Digital Point Cards

          shopify order tracking app for the food industry

          Success stories

          +0

            Shopify Order Tracking App for The Food Industry

            TakeOut is a Shopify application that allows restaurants and food industry businesses to streamline their takeout service. Instead of relying on a third-party application to sell and deliver food online, customers can order directly from the restaurant with this Shopify order tracking app. Sounds like a delicious way to increase profit engagement with customers! Almost everyone who lives in an urban area has had food delivered to them. Of course, there have always been a few more options when it comes to takeout. There's the stereotypical "Chinese takeout" that comes in a paper oyster shell tossed into a bag with disposable chopsticks and a handful of fortune cookies. If only one of those fortune cookies had told us about the possibilities of future food delivery and takeout! Today, all of your favorite foods are available for takeout or delivery.  Shopify Serves Small Restaurant Businesses The project began when a client approached us with the concept of giving small businesses a way to reduce their operating costs. Although there are many benefits to being listed on popular delivery and takeout websites and applications, but these benefits come at a financial cost. For some businesses, this is fine; just pay the fee and keep selling! However, some businesses prefer to keep these external costs to a minimum. Utilizing Shopify's Popularity in Japan In Japan, Shopify has become increasingly popular. Our partner client saw an opportunity to capitalize on this popularity and create an application that gives restaurants a choice. Now, Japanese restaurants can choose to sell their products through a well-known service or put more effort into developing their own brand and selling their food directly to hungry end users. TakeOut Functions for Foodies The first function of TakeOut is the call function. This allows customers to place a takeout order from the restaurant's Shopify website. The application shows where the food is in the pipeline, from the order being received, to being in the kitchen, to being ready for pickup. When the food is close to being ready, the application can send a push notification to notify the customer. If a client restaurant wants to add additional customization to the pipeline or takeout application, we can accommodate any request. Again, this is the beauty of Shopify: with a qualified team, the customization possibilities are nearly endless! User-friendliness is Delicious! Furthermore, adding the TakeOut application to a restaurant's Shopify is incredibly easy. In most cases, you won't need a development team at all. We've created a step-by-step guide on how to integrate the app into an existing Shopify store. All the restaurant owner has to do is follow the steps, then they're selling their deliciousness directly to customers. Similar to how customers might want to customize their food order, if there's something that needs to be changed, we can do the customization for the restaurant's Shopify.  TakeOut Challenges: Multiple Locations The project itself was not too difficult. A small team developed the application over the course of three months. SupremeTech had a lot of experience working with Shopify and our partner Fracta on other projects.   We worked seamlessly with our client partner. Our Japanese business analyst coordinated communication between the engineering team and Japanese stakeholders. However, despite our best efforts, there was one particular challenge that nearly tripped us up! Development projects rarely go by without some challenge or miscommunication. However, during the TakeOut project, we were able to adapt and complete the project on time. We worked under the assumption that the Shopify stores we were developing TakeOut for were stand-alone locations. We developed the app under without considering businesses with multiple locations. Due to Shopify's policy, this required some last-minute tinkering. Fortunately, we were able to power through the last minute adjustments. Sudden changes are common in our industry. Nonetheless, we learned valuable lesson about adapting when the client's specifications change.  Serving Customers With TakeOut TakeOut was a Shopify eCommerce application that we developed to help small businesses. We continue to work closely with our partner client to add new features to the app as the market dictates. To date, TakeOut's client restaurants and food lovers have praised its user-friendly interface. We're excited to see how the platform continues to change the way we do eCommerce in the future. Contact SupremeTech if you want the same Shopify order tracking app or any custom Shopify solutions. We make your business smarter and smoother!

            23/11/2023

            69

            Success stories

            +0

              23/11/2023

              69

              Shopify Order Tracking App for The Food Industry

              golang for devops

              How-To

              Knowledge

              Tech news

              +0

                Golang for DevOps: Empowering Infrastructure as Code and Automation

                In the realm of DevOps, efficiency, agility, and automation are paramount. This article explores how the Go programming language, often referred to as Golang, plays a significant role in DevOps by enabling infrastructure as code, automation scripts, and deployment tools. We will also discuss how Golang development services can support DevOps teams in achieving their goals. Understanding DevOps Before diving into Golang's role in DevOps, let's clarify what DevOps is all about. DevOps is a set of practices that aims to break down the traditional silos between development and IT operations teams. It promotes collaboration, communication, and automation to streamline software development and deployment processes. Infrastructure as Code with Golang Infrastructure as Code (IaC) is a cornerstone of DevOps, allowing infrastructure to be managed and provisioned using code. Golang is a powerful language for creating IaC because of its simplicity, efficiency, and excellent support for concurrent programming. Declarative IaC: Golang enables the creation of declarative IaC scripts, where you specify the desired state of your infrastructure. You can use tools like Terraform and Pulumi, which are written in Go, to define your infrastructure in a human-readable format. Golang's syntax is clean and easy to understand, making it an excellent choice for this purpose.Concurrency: DevOps often involves managing multiple resources and services concurrently. Golang's built-in support for concurrency with Goroutines and Channels ensures that you can manage your infrastructure efficiently. This is especially valuable when dealing with large-scale, distributed systems.Performance: Golang is known for its performance. When you need to apply changes to your infrastructure rapidly, Golang's speed can significantly reduce the time it takes to provision and manage resources, contributing to overall DevOps efficiency. Automation Scripts in Golang Automation is at the heart of DevOps, as it allows for repetitive tasks to be executed with precision and consistency. Golang's design makes it a perfect fit for writing automation scripts. Cross-platform Compatibility: Golang can compile code for multiple operating systems and architectures. This means that a single Golang script can run on various platforms, reducing the need to maintain separate scripts for different environments.Static Typing: Golang's static typing system provides robust error checking, helping to catch potential issues early in the development process. This feature is particularly beneficial when writing scripts that interact with critical systems.Rich Standard Library: Golang's standard library offers a wealth of packages for working with APIs, databases, networking, and more. DevOps professionals can leverage these packages to streamline the development of automation scripts.Ease of Deployment: Golang's ability to produce standalone binaries simplifies deployment. You don't need to worry about dependencies or runtime environments when distributing your scripts. Deployment Tools and Golang Development Services Deploying applications and services efficiently is a core aspect of DevOps. Golang can be a valuable ally in creating deployment tools that ensure smooth and reliable application delivery. Custom Deployment Pipelines: Golang allows DevOps teams to create custom deployment pipelines tailored to their specific requirements. You can build tools that handle everything from continuous integration to deployment, monitoring, and scaling.Integration with Containerization: Containers are a fundamental component of modern DevOps, and Golang is well-suited for creating container-related tools. Many container orchestration tools, like Kubernetes, are written in Golang, showcasing its capability in this area.Microservices Deployment: DevOps often involves the deployment of microservices. Golang's small binary size and efficient concurrency handling make it an excellent choice for managing and orchestrating microservices within a larger system. Support from Golang Development Services Golang development services provide valuable support to DevOps teams aiming to leverage the language for infrastructure as code, automation, and deployment. Here are some ways these services can assist: Consultation: Golang development services can offer expert advice and guidance on the best practices for using Golang in your DevOps processes. They can help you determine the most suitable tools and frameworks for your specific needs.Custom Tooling: Golang development services can create custom tools and scripts tailored to your infrastructure and deployment requirements. This ensures that your DevOps processes are as efficient as possible.Integration: Golang development services can integrate Golang-based tools with your existing systems, ensuring a seamless transition and coexistence with your current infrastructure.Maintenance and Support: DevOps is an ongoing process, and Golang development services can provide ongoing maintenance and support for the tools and scripts they develop, helping you keep your DevOps pipelines running smoothly. Conclusion Golang's simplicity, efficiency, and robust support for concurrent programming make it a valuable asset for DevOps teams looking to implement infrastructure as code, automation, and deployment processes. The language's capabilities, combined with the support of Golang development services, enable DevOps professionals to streamline their workflows, achieve higher efficiency, and meet the demands of modern, agile software development and deployment. Whether you are creating infrastructure as code, automation scripts, or deployment tools, Golang is a versatile and powerful choice in the DevOps toolbox. Contact us for your tailored Golang development services.

                17/11/2023

                88

                How-To

                +2

                • Knowledge
                • Tech news

                17/11/2023

                88

                Golang for DevOps: Empowering Infrastructure as Code and Automation

                Post banner imagePost banner image
                Customize software background

                Want to customize a software for your business?