1.NSWindowç¥å¤å°
2.jiraåonesåªä¸ªå¥½ï¼
3.代码统计分析工具(SourceCounter)- 开发工作量估算、工时工测试用例、源码源码缺陷预测工具
NSWindowç¥å¤å°
åºæ¯æè¿°ï¼ç¶é¡µé¢æ个å表ï¼éä¸ä¸è¡å°±å¼¹åºä¸ä¸ªæ¨¡æçªå£ï¼æ ¹æ®ä¸åçæä½ï¼ç¶é¡µé¢å°åç¹è¿çè¡çæé®åç°ã ç¶é¡µé¢ï¼ var clearData; var tmpControllerId; //ç¨äºåå¨å½åç¹å»çè¡å· // å¼¹åºæç»çªå£ function ShowDetail(url,工时工 id) { var title = "å·¥æ¶å®¡æ¹"; var reValue = ShowWindow(url, , , 0, title); //å¼¹åºæ¨¡æçªå£ // å»æåç°åè½ tmpControllerId = id; } .... //éèåç¨äºä¿åä¹åéä¸çè¡ var idS = document.getElementById("hidCheckBoxId").value; // clearData 没å®ä¹æ为false表示审æ¹æªéè¿ï¼å°±ä¸ç¨åç° if (clearData == undefined || !clearData) { idS = idS.replace(tmpControllerId, ""); idS = idS.substr(0, idS.length - 1); } if (idS != undefined && idS != "") { var arrId = idS.split(';'); for(var i = 0; i < arrId.length; i++) { if (arrId[i] == "") { continue; } var objBox = document.getElementById(arrId[i]); objBox.disabled = "disabled"; var objBtnId = arrId[i].replace("chkSelect", "lbtnApprove") var objBtn = document.getElementById(objBtnId); objBtn.disabled = "disabled"; objBtn.onclick = function() { return false; } } } document.getElementById("hidCheckBoxId").value = idS; å页é¢ï¼ function ControlParentController(result) { window.dialogArguments[2].clearData = result; } ... å页é¢æ ¹æ®ç¨æ·ä¸åçæä½ï¼å°±ç»ç¶é¡µé¢çclearData èµå¼ï¼ç¶é¡µé¢å¨æ ¹æ®clearData çå¼å³å®æ¯å¦éè¦å°åéçè¡çæé®åç°ã å¼¹åºæ¨¡æçªå£çæ¹æ³ï¼// åæ°åå«ä¸ºï¼æ件URL, å®½åº¦ï¼ é«åº¦ï¼ æ¯å¦ææ»å¨æ¡(è¿å¯ä»¥æ¹å大å) // æ¤å½æ°è§£å³äºæ¨¡å¼å¯¹è¯æ¡ä¸æå¼ççªå£æ交æ¶å¼¹åºæ°é¡µé¢çé®é¢ï¼ä½¿ç¨å°äºModelDialogFrame.htmæ件 function ShowWindow(szUrl,iWidth,iHeight,bScroll, szTitle){ if (iWidth == null) iWidth = 0.; if (iHeight == null) iHeight = 0.7; var width,height; if (iWidth>1) { width = iWidth; height = iHeight; } else { width = screen.availWidth * iWidth; height = screen.availHeight * iHeight; } var feature = "dialogHeight: " + height + "px; dialogWidth: " + width + "px; dialogTop: px; dialogLeft: px; edge: Sunken; center: Yes; help: No; scroll:auto;"; if (bScroll == 1 ) { feature += "resizable: Yes; status: Yes;"; } else { feature += "resizable: No; status: No;"; } var r = Math.random() + Math.random(); var frameUrl = "/WorkCost/js/ModalDialogFrame.htm?r=" + r; var args = new Array(szUrl, szTitle, window); return window.showModalDialog(frameUrl, args, feature); } ModelDialogFrame.htm æºç .dSdf
jiraåonesåªä¸ªå¥½ï¼
Jira åONESæ们å¢éé½ä½¿ç¨è¿ï¼é£ä¹ç©¶ç« Jira å ONES åªä¸ªæ´å¥½å¢ï¼æå¨ç åå¢éå é¨åäºå°è°ç ï¼å¤§å®¶é½è§å¾ï¼æ´ä½æ¥è¯´ ONES ä½éªææ¯ Jira 好ï¼æ´å 符åæ们çæå¾ ãå ç®åä»ç»ä¸ä¸æ们å¢éçèæ¯åéæ±ï¼
å ¬å¸åç½æè¡ä¸ï¼å¢éè§æ¨¡+ï¼ç åå¢éå æ®ä¸åãç±äºè¯¥è¡ä¸éè¦å¿«éè¿ä»£åºåä¼å欢çåè½ï¼æ们主è¦éç¨ææ·çç åæ¹å¼ï¼æ¯è¾çé项ç®ç®¡ç软件ç稳å®æ§ãåè½çå ¨é¢æ§åè´¹ç¨æ§ä»·æ¯è¿å 个æ¹é¢ã
Jira çåè½çç¡®å¾å¼ºå¤§ãä½ç±äºå®æ¯ä¸å®¶è¥¿æ¹åºå çå ¬å¸ï¼äº§åç设计对å½äººä¸æ¯å¾å好ï¼å¦ä¹ ææ¬é«ã
ææå¼å§ä¸æ ONES åªç¨äºä¸ä¸¤å¤©ï¼å¾å¥½æä½ä¹å¾æ¹ä¾¿ï¼è¦çäºéæ±ãå¼åãæµè¯ãé¨ç½²ã交ä»æ´ä¸ªç åæµç¨ç管çã
æéè¦çæ¯ï¼å®æ¯æä¸é®å¯¼å ¥Jiraæ°æ®ï¼ç¨æ·ãç¨æ·ç»ã项ç®é ç½®çé½å¯ä»¥å®ç°å®æ´çè¿ç§»ï¼è¿å¯¹æ们å¢éæ¥è¯´æ¯å¾ä¾¿å©çãèä¸ï¼æ好åå¬è¯´ ONES å ¬å¸å»å¹´èèµäº1个亿ï¼æ´ä½åå±å¿å¤´è¿æ¯å¾è¶³çã
Jiraå ONES çç¸åç¹è¿æ¯å¾å¤çï¼
ï¼1ï¼å®ä»¬é½æ¯é¡¹ç®ç®¡çå·¥å ·ä¸é½éç¨äºææ·å¢é
ï¼2ï¼é½éç¨äºé¡¹ç®è¿åº¦è¿½è¸ªã缺é·ç®¡çã缺é·è¿½è¸ªçåºæ¯
ï¼3ï¼é½æ¯æSaaSãç§æé¨ç½²åé«å¯ç¨çæ¬
ä»ä»¬çå·®å¼ä¹ä¸å°ï¼ONES çä¼å¿æ´å ææ¾ï¼è¿ä¹æ¯æè¿åå¹´ï¼ç®æµæªæ¥çå¤å¹´å ï¼ä½¿ç¨ ONES çåå ãä¸æ¥å¬å¬æçåæå§ï¼æå°ä»äº§åè½åãæ©å±è½åã稳å®æ§ã使ç¨æåæå¡è½åå 个æ¹é¢è¯ä¼°ã
è¿æ¯ ONES å 款产åè½åçæµç¨å¾ï¼
产åè½å
Jiraä» æ¯æScrum模åçåºç¡åè½ï¼å¦æéè¦å ¶ä»æ©å±æ§åè½ï¼ä¾å¦å 容管çãæµç¨å¼ºåï¼å·¥æ¶ç»è®¡ï¼è¦å¦è´ä¹°æ件ï¼ä»·æ ¼ä¸è²ï¼ONES æ¯æææ·ãçå¸ãDevOpsçå¤ç§æ¨¡å¼ï¼æ强大ç产åç»è£ è½åï¼ä»·æ ¼ä¹ä¾¿å®å¾å¤ï¼è¿å¯¹äºå°å ¬å¸æ¥è¯´å¤ªéè¦äºï¼
2. æ©å±è½å
Jiraæ¯æé®ä»¶åéçæºå¨äººæéï¼é»è®¤å¯ä¸ç¨æ·ç³»ç»æéï¼ä¸å¿ é¡»æ¯LADPæè ADæå¡ãONES æä¾ API æ¥å£ï¼æ¯æä»å½å 主æµåå ¬ç³»ç»è¿è¡è´¦å·åæ¥ç»ç»æ¶æã
3. 稳å®æ§
Jiraçå¢å¤äºæå¡é¾ä»¥ä¿è¯æ°æ®çå®å ¨ãONES æ¯æ¯æç§æé¨ç½²çï¼æ°æ®ä¸å¤ç½é离ï¼æ´å å®å ¨å¯æ§ã
4. 使ç¨æ
Jiraççé¢å æ¬æ´ä½æ维模å¼é½ä¸å¤ªç¬¦åå½äººï¼æ´å åå西æ¹ï¼ä¸ä¸éç¨äºæ°æãONES 使ç¨æ好ä¸ç¹ï¼æ´å äºè§£å¤§å®¶ççç¹åè¯æ±ï¼ä¸æç®åãè¿ä¹æ¯æ们å¢éæåæå¼å§ç¨ ONES æ¶ç¬¬ä¸æåã
5. æå¡è½å
Jiraæ ååæå¡ï¼ä¸»è¦éè¿ä»£çå为ä¸å½ä¼ä¸æå¡ãONES æä¾å®æ´ç解å³æ¹æ¡ï¼å°æ¶è¿ç¨é½æ客æï¼ä¸å®åå®åæä¾çå¨è¯¢æå¡é½æ¯å è´¹çã
æ»çæ¥è¯´ï¼Jira å ONES 对æ¯ä¸æ¥ï¼ONES æ´å åºå½©ï¼äº§åç©éµä¹æ´å ä¸ä¸ã主è¦çä¼å¿å¨äºï¼
ï¼1ï¼é«åº¦çµæ´»ï¼èªå®ä¹ç¨åº¦é«ï¼å¯ä»¥éé å¾å¤åºæ¯
ï¼2ï¼æ´å äºè§£å½äººççç¹ï¼çé¢ç®æ´ï¼ä½¿ç¨æ好
ï¼3ï¼ONES ææ¬ççå¾ä½ï¼Jiraçæ件å¾è´µï¼ä¼ä¸è´æ è¾å¤§
ï¼4ï¼æå¡ä¸éï¼å°æ¶è¿ç¨è§£å³å®¢æ·é®é¢
代码统计分析工具(SourceCounter)- 开发工作量估算、测试用例、源码源码缺陷预测工具
代码统计分析工具概览 代码统计分析工具是工时工一款强大的开发辅助软件,专为代码统计、源码源码源码模式python工作量估算和缺陷预测设计。工时工最新版本的源码源码4.0更新了界面至wxWidgets 3.1.4,修复了编译错误并优化了图标。工时工以下是源码源码工具的核心功能和使用指南。功能概览
支持多种源代码格式,工时工如C++、源码源码VB.Net等,工时工rgp源码全面统计代码行数、源码源码注释、工时工空行和文件大小等数据。
分析软件项目开发阶段的数据,包括工时、成本和质量指标,rabbitmq 源码如单元测试、结合测试的缺陷密度预测。
导出统计结果为CSV或HTML格式,便于数据分析和报告制作。
灵活设置统计范围,支持多目录递归统计,flipboard源码自定义文件扩展名。
提供工数、成本和质量指标的预测功能,支持单元测试和结合测试阶段的预测。
主界面详解
主界面由菜单栏、工具栏、tinycc 源码统计设定和分析参数面板,以及结果、过滤器和状态栏构成。工具栏包含了导出、过滤器控制、全屏切换等功能键。使用教程
1. 设置统计目录:选择要分析的代码文件,可选中子目录并设定代码类型。 2. 开始统计:点击"开始",实时查看统计结果,可随时暂停或继续。分析参数
参数包括编码效率、成本系数和测试密度等,需要根据实际情况调整。结果展示
结果面板提供详细分类,如文件、目录、总计和报表,支持排序和筛选。导出与联系
软件支持HTML和CSV导出,便于分享和进一步分析。联系可通过微信或邮件获取帮助。