-
Notifications
You must be signed in to change notification settings - Fork 10
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Pgyer中ADP领域驱动设计架构QA及纪要 #3
Comments
五大过程组十大只是领域49个过程,在里面基本都有体现。
|
2018年8月10日 10:26:27
一、两周内工作内容:1、陈天云:主要负责项目架构搭建(coding ) 与 前后端详细功能设计 2、朱天龙:主要负责项目架构搭建(coding ) 3、沈颠颠:前端架构设计、静态页面开发开发 4、金老大:与万文裕确认详细且通俗易懂的功能需求列表 5、徐大腿:完成所有的项目设计功能点设计以及前端架构图设计 二、两周之后团队进入开发阶段的协同工作方式:1、沈颠颠:主要负责前端架构以及开发(前后端) 2、徐大腿:项目前端nodejs逻辑代码编写 3、陈天云、朱天龙:两位后端架构师同步进入项目架构coding与api技术文档编写 |
2018年8月20日 17:16:38 会议
1、服务界面管理化,二期而考虑的功能点 架构师关注 2、ELK日志处理,一期需要考虑的功能点。 架构师及开发人员关注 3、项目架构以CCN.Pgyer打头 开发人员关注 4、在EF框架下,对于类似varchar和nvarchar自动转换导致系统性能慢的问题的调研 架构师关注 5、Redis等基础层、类的封装 架构师关注 6、分表逻辑处理需要在架构中体现 架构师关注 7、代码注释必须加上并且完善 所有devloper关注 8、后端Demo完善 沈敏关注 |
1 similar comment
2018年8月20日 17:16:38 会议
1、服务界面管理化,二期而考虑的功能点 架构师关注 2、ELK日志处理,一期需要考虑的功能点。 架构师及开发人员关注 3、项目架构以CCN.Pgyer打头 开发人员关注 4、在EF框架下,对于类似varchar和nvarchar自动转换导致系统性能慢的问题的调研 架构师关注 5、Redis等基础层、类的封装 架构师关注 6、分表逻辑处理需要在架构中体现 架构师关注 7、代码注释必须加上并且完善 所有devloper关注 8、后端Demo完善 沈敏关注 |
2018年7月23日 14:34:54上周关于pgyer项目进度报告:1、目前参与项目的成员陈天云、徐磊 2、关于文档,目前已经制作出整体应用架构图、物理机部署架构图、业务逻辑领域驱动图,10大模块的整体模块图已经完成80%,除了日志管理和BI数据中心这两个模块的设计还未编辑完成;关于前端和后端系统功能详细设计还未开始,预计这周可完成30%;数据表设计归档已完成80% 3、关于pgyerUI设计,前端和后端系统目前正在设计,项目进度正常进行:防伪查询、消费者h5、活动弹框(已完成+90%),后台设计预计月底完成; 4、关于数据表,目前已按照上周会议讨论的内容进行了详细的数据模型分模块设计,均已变成了数据表存在pgyer数据库中,注释字段等都已添加完成 5、整体项目进度目前还在设计阶段,整体进度20%。 本周计划:1、完成项目pgyer表结构字段更新及确认 2、完善项目文档及前端后台详细功能设计30% |
2018年8月22日 16:24:58 会议
1、团队成员需要学习ABP项目开源架构,初步确定使用ABP框架作为项目基础骨架 2、前端项目后端管理系统,需要出一个default页面展示出当前项目的基础样式,类似bootstrap的展示页 3、8月24日再次会议讨论ABP熟悉程度 |
ABP框架第一个错SetSqlGenerator("MySql.Data.MySqlClient", new CustomMigrationMySQLGenerator());
AutomaticMigrationsEnabled = true;
AutomaticMigrationDataLossAllowed = true; |
No language defined!$ Update-Database -verbose |
mysql需要新建一个类using System.Collections.Generic;
using System.Data.Entity.Migrations.Model;
using System.Data.Entity.Migrations.Sql;
using MySql.Data.Entity;
namespace CCN.Pgyer.Migrations
{
public class CustomMigrationMySQLGenerator : MySqlMigrationSqlGenerator
{
public override IEnumerable<MigrationStatement> Generate(IEnumerable<MigrationOperation> migrationOperations, string providerManifestToken)
{
var statments = new System.Collections.Generic.List<MigrationOperation>();
foreach (var item in migrationOperations)
{
var migration = item as AlterTableOperation;
if (migration == null)
{
statments.Add(item);
}
}
return base.Generate(statments, providerManifestToken);
}
}
} |
ABP教程-给项目添加SwaggerUI,生成动态webapi
/// <summary>
/// 配置SwaggerUi
/// </summary>
private void ConfigureSwaggerUi()
{
Configuration.Modules.AbpWebApi().HttpConfiguration
.EnableSwagger(c =>
{
c.SingleApiVersion("v1", "YoYoCMS.PhoneBookAPI文档");
c.ResolveConflictingActions(apiDescriptions => apiDescriptions.First());
})
.EnableSwaggerUi();
} 对API文档进行增强
//将application层中的注释添加到SwaggerUI中
var baseDirectory = AppDomain.CurrentDomain.BaseDirectory;
var commentsFileName = "Bin//XXX.PhoneBook.Application.xml";
var commentsFile = Path.Combine(baseDirectory, commentsFileName);
//将注释的XML文档添加到SwaggerUI中
c.IncludeXmlComments(commentsFile); 运行项目
修改访问方式
.EnableSwaggerUi("doc/{*assetPath}", b =>
{
//对js进行了拓展
b.InjectJavaScript(Assembly.GetExecutingAssembly(), "YoYoCMS.PhoneBook.SwaggerUi.scripts.swagger.js");
}); swagger.js代码 'use strict';
/**
* Translator for documentation pages.
*
* To enable translation you should include one of language-files in your index.html
* after <script src='lang/translator.js' type='text/javascript'></script>.
* For example - <script src='lang/ru.js' type='text/javascript'></script>
*
* If you wish to translate some new texsts you should do two things:
* 1. Add a new phrase pair ("New Phrase": "New Translation") into your language file (for example lang/ru.js). It will be great if you add it in other language files too.
* 2. Mark that text it templates this way <anyHtmlTag data-sw-translate>New Phrase</anyHtmlTag> or <anyHtmlTag data-sw-translate value='New Phrase'/>.
* The main thing here is attribute data-sw-translate. Only inner html, title-attribute and value-attribute are going to translate.
*
*/
window.SwaggerTranslator = {
_words: [],
translate: function () {
var $this = this;
$('[data-sw-translate]').each(function () {
$(this).html($this._tryTranslate($(this).html()));
$(this).val($this._tryTranslate($(this).val()));
$(this).attr('title', $this._tryTranslate($(this).attr('title')));
});
},
_tryTranslate: function (word) {
return this._words[$.trim(word)] !== undefined ? this._words[$.trim(word)] : word;
},
learn: function (wordsMap) {
this._words = wordsMap;
}
};
/* jshint quotmark: double */
window.SwaggerTranslator.learn({
"Warning: Deprecated": "警告:已过时",
"Implementation Notes": "实现备注",
"Response Class": "响应类",
"Status": "状态",
"Parameters": "参数",
"Parameter": "参数",
"Value": "值",
"Description": "描述",
"Parameter Type": "参数类型",
"Data Type": "数据类型",
"Response Messages": "响应消息",
"HTTP Status Code": "HTTP状态码",
"Reason": "原因",
"Response Model": "响应模型",
"Request URL": "请求URL",
"Response Body": "响应体",
"Response Code": "响应码",
"Response Headers": "响应头",
"Hide Response": "隐藏响应",
"Headers": "头",
"Try it out!": "试一下!",
"Show/Hide": "显示/隐藏",
"List Operations": "显示操作",
"Expand Operations": "展开操作",
"Raw": "原始",
"can't parse JSON. Raw result": "无法解析JSON. 原始结果",
"Model Schema": "模型架构",
"Model": "模型",
"apply": "应用",
"Username": "用户名",
"Password": "密码",
"Terms of service": "服务条款",
"Created by": "创建者",
"See more at": "查看更多:",
"Contact the developer": "联系开发者",
"api version": "api版本",
"Response Content Type": "响应Content Type",
"fetching resource": "正在获取资源",
"fetching resource list": "正在获取资源列表",
"Explore": "浏览",
"Show Swagger Petstore Example Apis": "显示 Swagger Petstore 示例 Apis",
"Can't read from server. It may not have the appropriate access-control-origin settings.": "无法从服务器读取。可能没有正确设置access-control-origin。",
"Please specify the protocol for": "请指定协议:",
"Can't read swagger JSON from": "无法读取swagger JSON于",
"Finished Loading Resource Information. Rendering Swagger UI": "已加载资源信息。正在渲染Swagger UI",
"Unable to read api": "无法读取api",
"from path": "从路径",
"server returned": "服务器返回"
});
$(function () {
window.SwaggerTranslator.translate();
});
var getCookieValue = function(key) {
var equalities = document.cookie.split('; ');
for (var i = 0; i < equalities.length; i++) {
if (!equalities[i]) {
continue;
}
var splitted = equalities[i].split('=');
if (splitted.length !== 2) {
continue;
}
if (decodeURIComponent(splitted[0]) === key) {
return decodeURIComponent(splitted[1] || '');
}
}
return null;
};
var csrfCookie = getCookieValue("XSRF-TOKEN");
var csrfCookieAuth = new SwaggerClient.ApiKeyAuthorization("X-XSRF-TOKEN", csrfCookie, "header");
swaggerUi.api.clientAuthorizations.add("X-XSRF-TOKEN", csrfCookieAuth); 打开新的路由
|
2018年8月24日 15:11:10 会议
1、后端架构确定使用ABP领域驱动架构,在官方网站上下载空模版 2、会议确定蒲公英使用自己的“微信开发者平台”,需要魏工在后期协助开发基础API 3、会议确定项目基础模块分工:
4、预计下次会议时间2018年8月28日 |
Pgyer工作小结:上周工作内容:一、在上周的工作内容中,通过提到的MyCat、Drds等阿里云的开源或者收费的产品做了测试,但是技术支持和运维要求比较高。通过项目成员的激烈探讨最终确定了不使用任何的开源或者收费的产品来进行有效的分库分表进行大数据的维护与管理,最终确定大数据分库分表形式如下: 二、会议中评审了第一版UI,包括防伪、追溯、营销(砸金蛋、大转盘、基础红包等)、积分商城、营销管理后台的基础色调和模版,并且提出了相应的修改建议 三、目前前端后端的架构体系还没有完全成型:前端架构初步定义为使用vue进行前端页面的开发。 本周工作内容:1、在本周工作内容中,在团队成员的积极调研下,确立了使用领域驱动模型架构作为蒲公英基础架构。 2、确定在基础架构之上的基础模块:身份验证(auth2.0)、api文档、数据库、日志、缓存、分表、测试项目、NODEJS前端整合等,并确定基础模块的第一次评审时间。 3、前端架构方面,基本已经了确定项目架构使用VUE+NODE组合形式进行基础架构,并且在下周确定后台项目的基础页面元素 下周工作内容:1、目团队成员进入项目基础模块开发阶段,在下周确定基础模块基本完成,并且通过第一次评审。 2、评审前端项目后台管理系统的基础页面元素,并且在UI评审通过的情况下进入静态页面开发。 |
经典闭包function counter(){
var n = 0;
return {
count:function(){ return n++;},
rest:function(){ n=0;},
now :function(){ alert("Now n = "+n);}
};
} |
2018年8月27日 14:00:00 Pgyer会议
1、后台消息管理不做删除操作。 coder关注 2、消息列表在系统分配权限的时候有默认权限,不能看到系统错误日志。 coder关注 3、后台前端新增default页面用来展示页面最基础的表单、表格、Modal等元素 coder关注 4、帮助中心跳转到帮助首页,而且后台需要内容发布系统 coder关注 5、在线客服按钮点击之后跳转到“蒲公英在线客户”系统。需要申请一个在线客服 万文裕关注 6、虚拟卡券默认设置审核发放,默认情况下无需审核直接审核,异常情况下设置审核发放 coder关注 7、积分商场中新增积分商城下线系统、维护转态系统 coder关注 8、后台管理系统可以对用户设置是否是异常用户:可设置禁用启用状态。同时需要服务去确定用户是否是某个级别用户、方便而且进行大数据营销 coder关注 重点关注类:1、需要申请一个在线客服系统。 万文裕关注 2、需要申请一个微信开发者管理平台 万文裕关注 3、需要申请一个微信公众号 万文裕关注 全员关注类1、设计文档需要重写,并且需要在周三(2018/8月/29日)团队内评审一次 teamer关注 |
单独打包公共模块为一个Vendor.js new webpack.optimize.CommonsChunkPlugin({
name: 'vendor',
minChunks (module) {
// any required modules inside node_modules are extracted to vendor
return (
module.resource &&
/\.js$/.test(module.resource) &&
module.resource.indexOf(
path.join(__dirname, '../node_modules')
) === 0
)
}
}), |
Create-react-app 多入口打包在项目下执行yarn run eject(npm run eject)修改webpack配置支持多入口
//遍历public下目录下的html文件生成arry
const globby = require('globby');
const htmlArray = globby.sync([path.join(resolveApp('public'), '/*.html')]);
//module.exports 里面增加
1、entry从原来的数组扩展为对象,每个key代表一个入口; 2、output中的filename要区分输出名,可增加[name]变量,这样会根据entry分别编译出每个entry的js文件。 3、Webpack配置多入口后,只是编译出多个入口的JS,同时入口的HTML文件由HtmlWebpackPlugin生成,也需做配置。chunks,指明哪些webpack入口的JS会被注入到这个HTML页面。如果不配置,则将所有entry的JS文件都注入HTML。filename,指明生成的HTML路径,如果不配置就是build/index.html,admin配置了新的filename,避免与第一个入口的index.html相互覆盖。 // 遍历html
const entryObj = {};
const htmlPluginsAray = paths.htmlArray.map((v)=> {
const fileParse = path.parse(v);
entryObj[fileParse.name] = [
require.resolve('./polyfills'),
require.resolve('react-dev-utils/webpackHotDevClient'),
`${paths.appSrc}/${fileParse.name}.js`,,
]
return new HtmlWebpackPlugin({
inject: true,
chunks:[fileParse.name],
template: `${paths.appPublic}/${fileParse.base}`,
filename: fileParse.base
})
});
<!--entry 替换为entryObj-->
entry:entryObj
//出口增加[name]
output: {
path: paths.appBuild,
pathinfo: true,
filename: 'static/js/[name].js',
chunkFilename: 'static/js/[name].chunk.js',
publicPath: publicPath,
devtoolModuleFilenameTemplate: info =>
path.resolve(info.absoluteResourcePath),
},
<!--替换htmlplugin内容-->
// new HtmlWebpackPlugin({
// inject: true,
// chunks: ["index"],
// template: paths.appPublic + '/index.html',
// }),
...htmlPluginsAray,
// 增加
const path = require('path');
const htmlPluginsAray = paths.htmlArray.map((v)=> {
const fileParse = path.parse(v);
return {
from: new RegExp(`^\/${fileParse.base}`), to: `/build/${fileParse.base}`
};
});
<!--historyApiFallback 增加 rewrites-->
rewrites: htmlPluginsAray
prod环境
在 // 原来的方法是复制public下所有的内容,因为增加了多html 所以不再直接复制过去(直接复制会覆盖html)
function copyPublicFolder() {
fs.copySync(paths.appPublic, paths.appBuild, {
dereference: true,
filter: file => file.indexOf('.html') < 0,
});
} 把公共模块独立打包resolve: {
// This allows you to set a fallback for where Webpack should look for modules.
// We placed these paths second because we want `node_modules` to "win"
// if there are any conflicts. This matches Node resolution mechanism.
// https://github.com/facebookincubator/create-react-app/issues/253
modules: ['node_modules', paths.appNodeModules].concat(
// It is guaranteed to exist because we tweak it in `env.js`
process.env.NODE_PATH.split(path.delimiter).filter(Boolean)
),
// These are the reasonable defaults supported by the Node ecosystem.
// We also include JSX as a common component filename extension to support
// some tools, although we do not recommend using it, see:
// https://github.com/facebookincubator/create-react-app/issues/290
// `web` extension prefixes have been added for better support
// for React Native Web.
extensions: ['.web.js', '.mjs', '.js', '.json', '.web.jsx', '.jsx'],
alias: {
// Support React Native Web
// https://www.smashingmagazine.com/2016/08/a-glimpse-into-the-future-with-react-native-for-web/
'react-native': 'react-native-web',
},
plugins: [
// Prevents users from importing files from outside of src/ (or node_modules/).
// This often causes confusion because we only process files within src/ with babel.
// To fix this, we prevent you from importing files out of src/ -- if you'd like to,
// please link the files into your node_modules/ and let module-resolution kick in.
// Make sure your source files are compiled, as they will not be processed in any way.
new ModuleScopePlugin(paths.appSrc, [paths.appPackageJson]),
// //2018年8月28日 16:48:56 xulayen添加
new webpack.optimize.CommonsChunkPlugin({
name: 'vendor',
minChunks(module) {
// any required modules inside node_modules are extracted to vendor
return (
module.resource &&
/\.js$/.test(module.resource) &&
module.resource.indexOf(
path.join(__dirname, '../node_modules')
) === 0
)
}
}),
],
}, |
2018年8月29日 15:14:42 Pgyer会议
1、再次确认分表机制:
2、最终确定设计文档雏形,部分细节需要继续修改一下; 3、沈敏后台前端架构的页面元素一览表已经完成,还需要作细节的修改:把组件的源码和组件的展示图放在一起,方便其他开发人员 4、继续上周工作内容,各个Coder继续基础模块开发。 |
2018年8月31日 14:52:55 Pgyer周报上周工作内容1、在上周工作内容中,在团队成员的积极调研下,确立了使用领域驱动模型架构作为蒲公英基础架构。 2、确定在基础架构之上的基础模块:身份验证(auth2.0)、api文档、数据库、日志、缓存、分表、测试项目、NODEJS前端整合等,并确定基础模块的第一次评审时间。 3、前端架构方面,基本已经了确定项目架构使用VUE+NODE组合形式进行基础架构,并且在下周确定后台项目的基础页面元素 本周工作内容1、对项目需求文档以及项目设计文档进行了内部评审,其中设计文档进行了两次评审,已经做了相应修改。 2、Pgyer整体架构已经完成,基础模块部分已经完成了50%,其中再次确定了分表的模式,以适应未来Pgyer系统对大数据的支持与扩展。 3、后台部分的页面元素引导页已经完成,少部分细节需要修改;前端部分看资源情况进行相应开发。 4、前端NODE端架构已经搭建完成,同时,NODE前端接口文档已经完成50%。 5、UI部分还没完全确定,预计下周做细节性修改。 6、目前Pgyer整体进度完成25%,目前项目进入正式开发阶段。 下周工作内容1、完成基础模块开发,并对基础模块部分编写单元测试项目。 2、前端用户前端界面开发 |
2018年9月3日 11:03:05 Pgyer基础模块开发进度报告1、会议确定项目基础模块分工:
|
2018年9月4日 13:54:08 Pgyer会议
1、汇报了基础模块的开发进度以及开发中遇到的问题。 2、需要魏工,需要在Pgyer项目进行微信开发者平台,在Pgyer解决方案中提供微信API接口。 3、需要熊工和沈敏一起,优先开发营销活动和防伪部分的用户端前端页面。 4、确定了前端(大熊、沈敏)、node端(徐磊)、后端(陈天云、朱天龙、金志新)、前端数据交互(徐磊)的开发主要人员 目前Pgyer第一期,第一阶段主流程开发工作分工:1、天龙 营销模块中登录注册的接口后端开发 2、金老大 新老平台的防伪接口整合以及和活动规则维度的整合对接 3、天云/天龙 活动规则、活动维度核心模块的开发 4、天龙 日志模块的开发,需要考虑分表逻辑 5、大熊/沈敏 营销模块和防伪模块前端页面 6、战朋 微信公众平台端的API接口 7、徐磊 后端接口所有基础设施的搭建以及Node端对接前端数据整合 |
2018年9月6日 15:00:41
1、在厂家主表中新增是否是新老平台的标识,方便金总做防伪鉴别 2、短信发送模版预留至少5到10个,
3、会议中每个人表达了一下个人在项目中遇到的问题以及建议 |
2018年9月7日 15:01:10 Pgyer周报上周工作内容
1、对项目需求文档以及项目设计文档进行了内部评审,其中设计文档进行了两次评审,已经做了相应修改。 2、Pgyer整体架构已经完成,基础模块部分已经完成了50%,其中再次确定了分表的模式,以适应未来Pgyer系统对大数据的支持与扩展。 3、后台部分的页面元素引导页已经完成,少部分细节需要修改;前端部分看资源情况进行相应开发。 4、前端NODE端架构已经搭建完成,同时,NODE前端接口文档已经完成50%。 5、UI部分还没完全确定,预计下周做细节性修改。 6、目前Pgyer整体进度完成25%,目前项目进入正式开发阶段。 本周工作内容1、汇总了基础模块的开发进度以及开发中遇到的问题,并且在工作中进行了业务探讨和归档 2、确定了Pgyer项目第一期第一阶段项目主要开发流程:以实现大转盘、砸金蛋、抽红包这样的基础主流程作为第一阶段的开发核心。
下周工作内容1、围绕第一期第一阶段功能点进行开发与单元测 |
2018年9月10日 13:44:44 遇到的项目问题1、短信发送的相关功能,如何开发?是否需要把接口
2、
|
2018年9月11日 10:29:43 Pgyer例会
1、确定短信下发使用 2、Pgyer的礼品充值系统,使用 项目进度1、天龙,用户模块、oauth权限、对接礼品模块未开始;ABP架构完成100% 2、天云,活动规则,完成20% 3、徐磊,短信服务、基础服务完成30% 4、金总,防伪接口,开发中……
|
2018年9月14日 14:54:38 Pgyer工作周报上周工作内容1、汇总了基础模块的开发进度以及开发中遇到的问题,并且在工作中进行了业务探讨和归档 2、确定了Pgyer项目第一期第一阶段项目主要开发流程:以实现大转盘、砸金蛋、抽红包这样的基础主流程作为第一阶段的开发核心。 本周工作内容
下周工作内容1、继续围绕第一期第一阶段功能点进行开发与单元测试 2、Pgyer系统对接 3、数码防伪接口开发 4、前端静态页面开发 |
2018年9月30日 16:31:32 Pgyer周报上周工作内容
本周工作内容Pgyer第一阶段工作内容进度80%,部分模块已进入测试阶段。
下周工作内容
|
2018年10月10日 14:52:41 Pgyer例会
成员各自说了一下各自的工作进度,并且讨论了关于测试的事情
|
2018年10月12日 14:12:27 Pgyer周报上周工作内容Pgyer第一阶段工作内容进度80%,部分模块已进入测试阶段。
本周工作内容Pgyer第一阶段工作内容进度80%,部分模块已进入测试阶段。
下周工作内容
|
2018年10月17日 16:33:21 Pgyer例会
讨论了礼品/库存模块、订单模块中目前存在的问题以及了解了下蒲公英2.0功能模块
|
2018年10月18日 11:09:06 Pgyer例会
讨论订单数据表、礼品库存表结构;再次确定抽奖逻辑实现方式 |
2018年10月19日 16:00:57 Pgyer周报上周工作内容Pgyer第一阶段工作内容进度80%,部分模块已进入测试阶段。
本周工作内容
下周工作内容
|
2018年10月23日 12:10:55 Pgyer例会
|
2018年10月31日 10:13:59 Pgyer例会
|
2018年11月1日 15:26:06 Pgyer例会
熟悉讲解配置活动、奖品、库存、规则涉及的数据表 |
2018年11月2日 10:36:29 Pgyer例会
确定项目接下来分工
|
2018年11月2日 13:43:43 Pgyer周报上周工作内容
本周工作内容
下周工作内容
|
2018年11月5日 11:04:54 Pgyer例会
确定了积分商城数据表架构 |
本周工作内容
下周工作内容
|
2018年11月13日 17:28:10 Pgyer例会
取消积分商城礼品中心,新增礼品中心对应客户的自定义产品、以及拓展信息 |
2018年11月16日 16:01:56 Pgyer周报上周工作内容
本周工作内容
下周工作内容
|
2018年11月21日 18:55:38 Pgyer例会
蒲公英项目中期总结及后期功能开发优先级
|
2018年11月23日 15:34:46 Pgyer周报上周工作内容
本周工作内容蒲公英项目中期总结及功能点整合归纳梳理
下周工作内容
|
2018年11月29日 15:58:13 Pgyer例会
进度报告
|
2018年11月30日 15:45:13 Pgyer周报上周工作内容蒲公英项目中期总结及功能点整合归纳梳理
本周工作内容
下周工作内容
|
2018年12月7日 16:51:22 Pgyer周报上周工作内容
本周工作内容
下周工作内容
蒲公英待开发模块
|
2018年12月12日 17:06:54 Pgyer关键人需求会议
新增关键人管理H5页面新增关键人参与活动维度新增关键人活动模版 |
2018年12月12日 13:46:10 Pgyer进度报告
|
2018年12月21日 16:21:21 Pgyer周小结上周工作内容
本周工作内容
下周工作内容
|
2018年12月29日 16:47:13 Pgyer周小结上周工作内容
本周工作内容
下周工作内容
|
2019年1月4日 17:53:59 Pgyer周小结上周工作内容
本周工作内容
下周工作内容
|
2019年1月18日 16:40:55 Pgyer周小结上周工作内容
本周工作内容
下周工作内容
|
2019年2月15日 16:44:30 Pgyer周小结上周工作内容
本周工作内容
下周工作内容
|
2019年8月2日 17:21:58 舍得会员系统周小结上周工作内容
本周工作内容
下周工作内容
|
2019年8月9日 14:21:24 舍得会员系统周小结本周工作内容
下周工作内容
需要客户方配合的工作:
|
2019年8月16日 16:20:03 舍得会员系统周小结核心模块已经开发完成,核心抽奖模块已进行多场景联合测试,前后端流程已完成80%,预计下周提交测试 本周工作内容
下周工作内容
需要客户方配合的工作:
|
http://pmp.xulayen.com/index.html#/pre/face
PMBOOK 6.0系统解析|PMP 6.0系统的分析记录工具,项目管理系统分析记录工具,PMP,学习,考试,PMI,PMP 6.0,PMP分析,PMPBOOK,PMPBOOK 6.0,PMBOOK 6.0系统解析,PMBOOK系统解析,PMPBOK,PMPBOK 6.0,PMBOK 6.0系统解析,PMBOK系统解析
The text was updated successfully, but these errors were encountered: