Difference: LhPackage (1 vs. 7)

Revision 72020-04-22 - ZhuChengguang

Line: 1 to 1
 
META TOPICPARENT name="LhSoft"
Line: 60 to 60
 
    1. LogDebug <<" ......" <<std::endl;
    2. LogFatal <<"......"<<std::endl;
  1. LodeStar 定义了6个级别的输出,分别为
Changed:
<
<
    1. #define LogTest SNIPERLOG(0) #define LogDebug SNIPERLOG(2) #define LogInfo SNIPERLOG(3) #define LogWarn SNIPERLOG(4) #define LogError SNIPERLOG(5) #define LogFatal SNIPERLOG(6)
>
>
    1. #define LogTest SNIPERLOG(0) 
    2. #define LogDebug SNIPERLOG(2) 
    3. #define LogInfo SNIPERLOG(3) 
    4. #define LogWarn SNIPERLOG(4) 
    5. #define LogError SNIPERLOG(5) 
    6. #define LogFatal SNIPERLOG(6)
 
  1. 根据信息的性质,选择以上六个中的一个,实际运行中,可以设置输出级别从而限制输出的数量
  2. 使用时,需要 #include "SniperKernel/SniperLog.h"
Deleted:
<
<
-- Chengguang ZHU - 2020-04-09
 

Comments


<--/commentPlugin-->

Revision 62020-04-15 - ZhuChengguang

Line: 1 to 1
 
META TOPICPARENT name="LhSoft"
Added:
>
>
 

Package in LhSoft

LhSoft 的功能单元:pacakge

  • package是LHAASO软件的基本功能单元。使数据分析软件编写可以从package模块开始,而不全部从C++代码开始。
Line: 14 to 16
 

可发布pacakge

Changed:
<
<
  • 个人开发的package被合作组官方采用,是个人以及所在单位对合作组的贡献,也是对pacakge进行全面debug的过程
>
>
  • 个人开发的package被合作组官方采用,是个人和所在单位对合作组必须的贡献,也能够对pacakge进行全面debug
 
  • 参照 LhSoftSVN 说明,维护pacakge的版本发展,便于官方发布。
Changed:
<
<
  • 注意事项:
    • pacakge发布前应当进行深度检验,证明package正确性
>
>
  • pacakge发布前的注意事项:
    • 应当验证可以被python调用:有正确的python文件夹
    • 应当验证可以被其他pacakge调用和链接:有正确的requirements文件内容
    • 应当进行深度检验,证明package正确性
 
    • 点击 LhSoftPerson 中pacakge的名字应能在相应网页中查到对pacakge的说明以及验证结果。
    • 版本更替时,pacakge内的函数名应尽量保持稳定,如确实需要更改,建议如下:
      • 如原函数仍可用,只是形参需要修改,那么保持原函数,增加重载函数。

Revision 52020-04-15 - ZhuChengguang

Line: 1 to 1
 
META TOPICPARENT name="LhSoft"

Package in LhSoft

LhSoft 的功能单元:pacakge

Line: 51 to 51
 * Each header file contains information, such as developer, e-mail, changelog

* Each function member and data member should have comments to tell what it is.

Added:
>
>

4. Log ouput rules: important

  1. 当程序运行中需要输出信息时,请不要用cout或者printf等C++方法,而是使用以下类似方法:
    1. LogDebug<<" ......" <<std::endl;
    2. LogFatal<<"......"<<std::endl;
  2. LodeStar定义了6个级别的输出,分别为
    1. #define LogTest SNIPERLOG(0) #define LogDebug SNIPERLOG(2) #define LogInfo SNIPERLOG(3) #define LogWarn SNIPERLOG(4) #define LogError SNIPERLOG(5) #define LogFatal SNIPERLOG(6)
  3. 根据信息的性质,选择以上六个中的一个,实际运行中,可以设置输出级别从而限制输出的数量
  4. 使用时,需要 #include "SniperKernel/SniperLog.h"
  -- Chengguang ZHU - 2020-04-09

Revision 42020-04-14 - ZhuChengguang

Line: 1 to 1
 
META TOPICPARENT name="LhSoft"

Package in LhSoft

LhSoft 的功能单元:pacakge

Changed:
<
<
  • package是 LhSoft 的基本单元,具有独立的功能。使使用LhSoft的软件开发者可以从package开始组建自己的分析程序,而不是从C++代码开始。
  • package通常表现为一个名为xxxx的文件夹,具有相对固定的文件夹结构,例如:源文件(.cc)文件夹src,头文件(.h)文件夹xxxx,编译文件夹cmt,宏控制文件夹python,编译产生的目标文件的文件夹等
  • 一个pacakge实现一个具体的功能,按照功能分为三种形式:Algorithm,Service,Tool
  • pacakge由相对固定的developer设计和维护,并提供给整个合作组使用
  • LHAASO软件发布的每一个官方release,由指定版本的pacakge组成。
>
>
  • package是LHAASO软件的基本功能单元。使数据分析软件编写可以从package模块开始,而不全部从C++代码开始。
  • package表现为一个名为xxxx的文件夹,具有相对固定的文件夹结构:
    • 源文件(.cc) 文件夹 src
    • 头文件 (.h) 文件夹 xxxx,(通常和pacakge名相同)
    • 编译文件夹 cmt
    • 宏(.py)文件夹 python,
    • 编译产生的目标文件的文件夹, 名字根据系统而变
    • 可执行宏文件文件夹 share
  • 一个pacakge实现一个具体的功能,按照功能分为三种形式:Algorithm(算法),Service(服务),Tool(工具).
  • 开发pacakge时,请参照以下规则,以及例子 http://svn.lhaaso.ihep.ac.cn/People/zhucg/tags/Examples/ 进行。
  • 开发pacakge的过程中参照 LhSoftSVN 说明,使用SVN将code管理起来。

可发布pacakge

  • 个人开发的package被合作组官方采用,是个人以及所在单位对合作组的贡献,也是对pacakge进行全面debug的过程
  • 参照 LhSoftSVN 说明,维护pacakge的版本发展,便于官方发布。
  • 注意事项:
    • pacakge发布前应当进行深度检验,证明package正确性
    • 点击 LhSoftPerson 中pacakge的名字应能在相应网页中查到对pacakge的说明以及验证结果。
    • 版本更替时,pacakge内的函数名应尽量保持稳定,如确实需要更改,建议如下:
      • 如原函数仍可用,只是形参需要修改,那么保持原函数,增加重载函数。
      • 原函数无法使用,一定删除原函数,再增加新函数。
    • 用户返回的问题,应及时解决并在下一版本中更正,并收入下一个官方版本。
 

Package的编写规则

Changed:
<
<
编写规则并非强制,但是将非常有利于大家交流。
>
>
编写规则利于相互交流,自己开发的软件被更多人使用。
 

1. Package 命名规则

* package名由一个或多个首字母大写的完整单词组成,或者因名字过长,部分或全部单词采用易分辨的缩写代替,例如:DetectorSimulation or DetSim.

Revision 32020-04-10 - ZhuChengguang

Line: 1 to 1
 
META TOPICPARENT name="LhSoft"

Package in LhSoft

LhSoft 的功能单元:pacakge

Line: 36 to 36
  * Each function member and data member should have comments to tell what it is.
Changed:
<
<
-- Chengguang ZHU - 2020-04-09
>
>
-- Chengguang ZHU - 2020-04-09
 

Comments


<--/commentPlugin-->
Added:
>
>
META TOPICMOVED by="zhucg" date="1586482915" from="Main.LhPackage" to="LHAASO.LhPackage"

Revision 22020-04-09 - ZhuChengguang

Line: 1 to 1
 
META TOPICPARENT name="LhSoft"

Package in LhSoft

Changed:
<
<

数据分析软件的基本单元:pacakge

>
>

LhSoft 的功能单元:pacakge

 
  • package是 LhSoft 的基本单元,具有独立的功能。使使用LhSoft的软件开发者可以从package开始组建自己的分析程序,而不是从C++代码开始。
  • package通常表现为一个名为xxxx的文件夹,具有相对固定的文件夹结构,例如:源文件(.cc)文件夹src,头文件(.h)文件夹xxxx,编译文件夹cmt,宏控制文件夹python,编译产生的目标文件的文件夹等
  • 一个pacakge实现一个具体的功能,按照功能分为三种形式:Algorithm,Service,Tool
Line: 10 to 9
 
  • LHAASO软件发布的每一个官方release,由指定版本的pacakge组成。

Package的编写规则

Changed:
<
<

1. Package 命名原则

package名由一个或多个首字母大写的完整单词组成,或者因名字过长,部分或全部单词采用易分辨的缩写代替,例如:DetectorSimulation or DetSim.

* Service package 应当以Svc结尾, such as DetcPosSvc, 应当以Tool结尾, such as DetcPosTool

* Encourage a package contains only one tool/service/algorithm. The package name is same to the tool/service/algorithm name.

l Each CMT package includes sub-directories: cmt, PackageName, src, share, python.

à cmt: automatically generated and used for“requirements”file

à PackageName: header files of each class: *.h

à src: implementation files: *.cc

à python: default python configuration: *.py

à share: python scripts for running and testing

à In Package directory: edit a file “HowToUse”record the change between versions and procedure how to use it。

>
>
编写规则并非强制,但是将非常有利于大家交流。

1. Package 命名规则

 
Changed:
<
<

2. C++代码规则*

l Data members begin with m_: m_energy
>
>
* package名由一个或多个首字母大写的完整单词组成,或者因名字过长,部分或全部单词采用易分辨的缩写代替,例如:DetectorSimulation or DetSim.
 
Changed:
<
<
l Static variables begin with s_: s_count

l Constants begin with c_: c_gain

l Global variables begin with g_: g_env

l Function members begin with the capital letter: SetEnergy()

l Functions should correlate with variables: m_energy /SetEenergy()/ Energy()

l Locals and parameters begin with a lower case: nbytes

l Getters and setters begin with get and set: SetLast(), GetFirst()

l One header file usually for one class, except internal class definitions

l Use macro predefinition to avoid duplication

#ifndef LASODetSim_H

#define LASODetSim_H

>
>
* Service package 应当以Svc结尾, such as DetcPosSvc , 应当以Tool结尾, such as DetcPosTool
 
Changed:
<
<
>
>
* package子目录通常包含: cmt, PackageName, src, share, python. python目录内包含 python配置文件*.py,以便被python主程序调用。share目录通常包含python主程序
 
Changed:
<
<
#endif
>
>
* package目录中除了子目录外,维护一个ChangeLog文件,对于每次pacakge的每次更新进行介绍,并描述使用方法

2. C++代码规则

 
Changed:
<
<
l Inline functions should be defined in the header files
>
>
* Data members begin with m_: m_energy
 
Changed:
<
<
l Including external header files: #include < <package>/header.h >
>
>
* Function members begin with the capital letter: SetEnergy ()
 
Changed:
<
<
l Including local header files: #include “header.h”
>
>
* Functions should correlate with variables: m_energy/SetEenergy()/(Get)Energy()
 
Changed:
<
<
l All data members should be initialized in the construction function of the class.
>
>
* Each function are encouraged to be written not more than one screen.
 
Added:
>
>
* Try to follow the coding LodeStar used.
 

3. Comments convention

Changed:
<
<
l Each header file should have comments include the class definition, developer and e-mail

l Each function are encouraged to be written not more than one screen.

>
>
* Each header file contains information, such as developer, e-mail, changelog
 
Changed:
<
<
l Each function member and data member should have line comments
>
>
* Each function member and data member should have comments to tell what it is.
  -- Chengguang ZHU - 2020-04-09

Revision 12020-04-09 - ZhuChengguang

Line: 1 to 1
Added:
>
>
META TOPICPARENT name="LhSoft"

Package in LhSoft

数据分析软件的基本单元:pacakge

  • package是 LhSoft 的基本单元,具有独立的功能。使使用LhSoft的软件开发者可以从package开始组建自己的分析程序,而不是从C++代码开始。
  • package通常表现为一个名为xxxx的文件夹,具有相对固定的文件夹结构,例如:源文件(.cc)文件夹src,头文件(.h)文件夹xxxx,编译文件夹cmt,宏控制文件夹python,编译产生的目标文件的文件夹等
  • 一个pacakge实现一个具体的功能,按照功能分为三种形式:Algorithm,Service,Tool
  • pacakge由相对固定的developer设计和维护,并提供给整个合作组使用
  • LHAASO软件发布的每一个官方release,由指定版本的pacakge组成。

Package的编写规则

1. Package 命名原则

package名由一个或多个首字母大写的完整单词组成,或者因名字过长,部分或全部单词采用易分辨的缩写代替,例如:DetectorSimulation or DetSim.

* Service package 应当以Svc结尾, such as DetcPosSvc, 应当以Tool结尾, such as DetcPosTool

* Encourage a package contains only one tool/service/algorithm. The package name is same to the tool/service/algorithm name.

l Each CMT package includes sub-directories: cmt, PackageName, src, share, python.

à cmt: automatically generated and used for“requirements”file

à PackageName: header files of each class: *.h

à src: implementation files: *.cc

à python: default python configuration: *.py

à share: python scripts for running and testing

à In Package directory: edit a file “HowToUse”record the change between versions and procedure how to use it。

2. C++代码规则*

l Data members begin with m_: m_energy

l Static variables begin with s_: s_count

l Constants begin with c_: c_gain

l Global variables begin with g_: g_env

l Function members begin with the capital letter: SetEnergy()

l Functions should correlate with variables: m_energy /SetEenergy()/ Energy()

l Locals and parameters begin with a lower case: nbytes

l Getters and setters begin with get and set: SetLast(), GetFirst()

l One header file usually for one class, except internal class definitions

l Use macro predefinition to avoid duplication

#ifndef LASODetSim_H

#define LASODetSim_H

#endif

l Inline functions should be defined in the header files

l Including external header files: #include < <package>/header.h >

l Including local header files: #include “header.h”

l All data members should be initialized in the construction function of the class.

3. Comments convention

l Each header file should have comments include the class definition, developer and e-mail

l Each function are encouraged to be written not more than one screen.

l Each function member and data member should have line comments

-- Chengguang ZHU - 2020-04-09

Comments


<--/commentPlugin-->
 
This site is powered by the TWiki collaboration platform Powered by PerlCopyright © 2008-2022 by the contributing authors. All material on this collaboration platform is the property of the contributing authors.
Ideas, requests, problems regarding TWiki? Send feedback