People have asked me what my next plans are for the project. So here’s a quick list of some works I got lined up for SheepAop, ordered by priority:
- Documenting and posting blog articles.
Writing has always been, and will forever be, astronomically tedious and majestically mind-numbing. There has been zero coding activity in SheepAop for a good couple of weeks now since I started the documentation work; and it’s still nowhere near finish.
Writing is depressing, often suicidal. That’s a universal truth. But an open-source project is only as useful as how much people know how to use it. So this has to be done as my utmost priority before I embark on any further development effort.
- Looking into all those NDepend inspection warnings and refactor accordingly. (I’ll blog about the whole process).
- SAQL Query Analyzer.
This would be a fantastic tool to get a visual understanding on SheepAop pointcuts and various SAQL expressions. It will help the learning curve, and ultimately the adoption of SheepAop. One small catch: I’m technically daft and aesthetically hopeless at GUI design.
- CFlow pointcuts. Ability to use the control-flows of the program as part of your pointcut expressions. (e.g.: The pointcut of a dirty-tracking aspect should not match property-settings called from within the control flow of the object constructor). Based on AspectJ feature with the same name.
- Working on a few pointcut types, SAQL criteria, and aspect-lifecycles that are currently unimplemented (most importantly: the Constructor and Instantiation pointcuts)
- Add features to help unit-testing
- Support “ImplementInterface” advice
- Support “Mixin” advice
Quite a fat pipeline ahead. It will keep me busy for at least the next couple of months.