rskopecek / codedocs Goto Github PK
View Code? Open in Web Editor NEWCode-based conversation around the quality and design of the code.
License: MIT License
Code-based conversation around the quality and design of the code.
License: MIT License
Scoping is a bit of a broad topic. However, currently the scoping is relatively straight forward. Usage is grouped under the codedocs namespace and detection is under codedocs.detection. Attributes are scoped to the individual item/member but does not inherit.
Just a general area to discuss potential scoping changes.
Currently the detection functionality is setup to decorate items like app domains, assemblies, types, and instances. It's setup to provide back the results in a hierarchical structure but still allow a quick call to get all the levels and a quick way to flatten the results.
There might not be much more to comment on for this subject, or there may be different quick use cases. The scanner class currently contains all detection logic, but some aggregation logic is found in the doc class definition.
https://github.com/rskopecek/CodeDocs/tree/master/src/CodeDocs/Detection
Naming is only as good as it's utility and understanding Potentially some methods, enums, or classes would make more sense changed to something else or even slightly modified. For example, did it make more sense as patterns & practices or patterns & principles. Some were principles but the common term is practices.
This is simply an open area to allow discussion. If you have suggestions for changes, feel free to comment with why you think it should be changed.
Currently the project is targeted at netstandard2.0. However, the mountain of tech debt that affects developers and their system users may range back to early versions of .Net. Version 3.5 seems like an obvious one to include.
What .net versions should be added on as a target so you can utilize in all your .net codebases.
This kind of intermixes a bit with detection and CI capabilities. However, perhaps you want to get a object model out in simplistic form during runtime to report out on some dashboard or to transmit to a webhook or return via your webapi for full system aggregation of state. Whatever the reason, this is the place to comment on those needs.
There is a primary list of attributes which are used for semi-generic code review application. They aren't the primary form of expression, but they are the top level conversation starter.
On this issue, the conversation should revolve around what attributes should be available, their name, and their description. The attributes that already exist in the below link are merely a starting point for discussion in this thread.
https://github.com/rskopecek/CodeDocs/tree/master/src/CodeDocs/Generated
One of the forms of situational expression is the tagging of various patterns and principles. Sometimes they can be use to simplify the message to convey or help point the developer who will address it to something they should learn about or rethink first.
For example: [SideEffects(solid: Solid.SingleResponsibility)]
The options are grouped and isolated to support bitwise stacking of multiple enum values. Names are preferred in long form to ensure readability. For example, SRP may be well known to the reviewer but not so much for the developer having to do something about it.
The items currently included can be found in the link below which are only a conversational starter.
https://github.com/rskopecek/CodeDocs/tree/master/src/CodeDocs/PatternsAndPrinciples
CI needs range from documentation to raising red flags and even stopping the build. What functionality or use cases would you need covered?
The attribute arguments are the final piece of expression. The args are designed to be expressed as needed with named parameters or via the comment by default.
The parameters are not intended to be highly specific but allow a reasonable common ground of expression.
There are some language level constraints that guide the expression one way or another (ex. only constants and no generics). For example, the date field is expresses as an iso integer and nullable integers are expressed via the minimum value.
https://github.com/rskopecek/CodeDocs/blob/master/src/CodeDocs/Generated/Bug.generated.cs
https://github.com/rskopecek/CodeDocs/blob/master/src/CodeDocs/CodeDocsAttribute.cs
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.