User Tools

Site Tools


naming_conventions

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
naming_conventions [2014/02/19 06:45]
yann
naming_conventions [2018/03/04 02:53] (current)
Line 1: Line 1:
 ====== Naming Conventions ====== ====== Naming Conventions ======
 +
 +Following common, consistent naming conventions is essential to ease program comprehension and usage.
  
 ===== Test Projects ===== ===== Test Projects =====
  
-Each project, which are Eclipse plug-in in nature, should come with a test project, which is a Java project in nature. For example, the ''​SAD''​ project comes with the ''​SAD Tests''​ project. Test projects include everything required to compile and run the tests, that means resources too, so they can be big. They use **relative paths** when accessing resources to run on any platform. They are known to compile and run on Windows and MacOS computers without requiring any changes. ​+Each project, which is Eclipse plug-in in nature((To allow integration of the UI into Eclipse JDT)), should come with a test project, which is a Java project in nature. For example, the ''​SAD''​ project comes with the ''​SAD Tests''​ project. Test projects include everything required to compile and run the tests, that means resources too, so they can be big. They use **relative paths** when accessing resources to run on any platform. They are known to compile and run on Windows and MacOS computers without requiring any changes. ​
  
-Any test project includes a class ''​aaa.bbb.test.TestPPP''​ that is the **main test suite**, where ''​aaa.bbb''​ is the main package of the application project and ''​PPP''​ the name of the application project. For example, in the ''​SAD Tests''​ project, there is the package ''​sad.detection.test''​ that declares the class ''​TestSAD'',​ which is the main test suite for the ''​SAD''​ project.+test project ​always ​includes a class ''​aaa.bbb.test.TestPPP''​ that is the **main test suite**, where ''​aaa.bbb''​ is the "main" ​package of the application project and ''​PPP''​ the name of the application project. For example, in the ''​SAD Tests''​ project, there is the package ''​sad.detection.test''​ that declares the class ''​TestSAD'',​ which is the main test suite for the ''​SAD''​ project.
  
 ===== Packages ===== ===== Packages =====
Line 11: Line 13:
 In application and test project, packages follow naming conventions. In application and test project, packages follow naming conventions.
  
-A test project always includes a ''​aaa.bbb.TestPPP''​ class, where ''​aaa.bbb''​ is the main package in the application project, e.g., "​sad.detection.test"​ in ''​SAD Tests'',​ and ''​PPP''​ is the name of the application project, e.g., ''​SAD''​. +A test project always includes a ''​aaa.bbb.TestPPP''​ class, where ''​aaa.bbb''​ is the "main" ​package in the application project, e.g., "​sad.detection.test"​ in ''​SAD Tests'',​ and ''​PPP''​ is the name of the application project, e.g., ''​SAD''​.
- +
-A project that offer an interface to be implemented by a variety of algorithms always has a package ''​aaa.bbb''​ and a package ''​aaa.bbb.repository''​. In ''​aaa.bbb''​ are the interface(s) and the repository to dynamically access the algorithms at run-time. Repositories implements the interface ''​util.repository.IRepository''​ and are ''​final''​. For examples: +
- +
-| ''​PADL''​ project | +
-| ... | Interfaces | ''​padl.visitor.IGenerator''​ and ''​padl.visitor.IWalker''​ | +
-| ... | Repository | ''​padl.visitor.VisitorsRepository''​ | +
-| ... | Accessors ​ | ''​padl.visitor.VisitorsRepository.getGenerators()''​ and '''​padl.visitor.VisitorsRepository.getWalkers()'​ | +
-| ''​PADL Analyses''​ project | +
-| ... | Interface ​ | ''​padl.analysis.IAnalysis''​ | +
-| ... | Repository | ''​padl.analysis.AnalysesRepository''​ | +
-| ... | Accessor ​  | ''​padl.analysis.AnalysesRepository.getAnalyses()''​ |+
  
 +A project that offers an interface to be implemented by a variety of algorithms always has a package ''​aaa.bbb''​ and a package ''​aaa.bbb.repository''​. In ''​aaa.bbb''​ are the interface(s) and the repository to dynamically access the algorithms at run-time. Repositories implement the interface ''​util.repository.IRepository''​ and are ''​final''​. In the ''​aaa.bbb.repository''​ are the algorithms implementing the interface(s). See the page dedicated to [[repositories]].
naming_conventions.1392792354.txt.gz · Last modified: 2018/03/04 02:53 (external edit)