Coder Social home page Coder Social logo

voedger-proto's Introduction

voedger-proto

Motivation

Files which every package can have

  • errors.go, consts.go
  • utils.go // Helpers and potential candidates for goutils module
  • [lowered_type1]_string.go, [lowered_type2]_string.go // stringers output
  • internal // folder

Interface package

  • Example: pkg/ibus
  • interface.go
  • types.go // Public types with methods
    • types_events.go // If there are many types
    • types_schemes.go

Interface Implementation package

  • Example: pkg/ibusmem
    • provide.go
    • New() function
  • impl.go
    • impl_types.go // if needed
    • impl_errors.go // if needed
    • impl_myReceiver1.go
    • impl_mySuperReceiver1.go

Interface and Implementation files

  • Interface files + Interface Implementation files

Just a library

  • Example: cobrau
  • Interface and Implementation files // if library provides interface and implementation
  • <package-name>.go // if library is simple
  • <logical_subpackage1>.go, <logical_subpackage2>.go... // if library is complex

Package Structure: CLI Tool

  • ref dummytool
  • main.go
    • execRootCmd()
      • Use cobrau.PrepareRootCmd()
      • Return:
        • rootCmd.Execute()
        • or: cobrau.ExecCommandAndCatchInterrupt(rootCmd)
  • gorun.sh - a helper to run the main func
  • .go, .go...
  • deploy_test.go
    • testingu.RunRootTestCases(t, execRootCmd, testCases)
  • Use internal packages

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.