EPALN项目建立好页以后,页的数据结构建立单链表能更改吗?

eplan吧-百度贴吧--电气计算机辅助设计EPLAN软件交流平台--1.EPLAN作为电气计算机辅助设计时代的先锋,一直是为电气规划,工程设计和项目管理领域提供智能化软件解决方案和专业化服务。2
签到排名:今日本吧第个签到,
本吧因你更精彩,明天继续来努力!
本吧排名:
本吧签到人数:107
可签7级以上的吧50个
本月漏签0次!
成为超级会员,赠送8张补签卡
连续签到:天&&累计签到:天
超级会员单次开通12个月以上,赠送连续签到卡3张
电气计算机辅助设计EPLAN软件交流平台
eplan8 2.3安装教程: 所需工具:eplan8 2.3 http://www.ddooo.com/softdown/107189.htm 1、打开“install”目录,运行“setup.
各位 我在安装eplanp8 2.4版本后 出现了硬件冲突 是什么情况
哪位大哥能帮帮小弟!感激不尽。。。已经定义连接点了
第一个,一个线圈上好几个接点?是什么特殊型号?每个接点的含义是什么 第二个,一个延时断开继电器
请问EPLAN中磁环应该怎么画?
eplan导出cad如何只导出一张
我的电脑是win7 64 位旗舰纯净版版,这个EPLAN P8 2.3我一直在使用,试过P2.4版本,由于总是出现错误,还是
经过两年的自学,从当初的2.3版本到现在的2.7版本,这两个版本各有各的优势。现将2.7版本的链接分享出
求eplan资料,最好是报表那块儿的,不懂
求助,EPLAN P8 2.6的教育版怎么获取激活码
我选了端子画好了,但是到打印出来都是黑色的,无图无真相,大伙看图~ ~
大神们,我这个项目名称图标这有个黄色叹号,是什么原因?怎么消除掉呢?
EPLAN Electric P8 2.7版本出来了,我也将教程发布下,希望帮助到大家 EPLAN Electric P8和EPLAN ProPanel 还有ppe、Fluid
好不容易 终于装上去了!! 自己摸索出的方法~~
求大神帮忙发一个eplan 教程视频百度网盘连接
设备连接图
大家好我是一个新手菜鸟 使用的Eplan版本是 education 2.6 学生激活的。 我想做一个关于Eaton SPS的电路图所以
万能的吧友们问个问题… 项目新建之后,每次打开软件都会出现这样的问题是什么意思,会不会影响到软
win10 家庭/专业/企业版下EPLAN Electric P8和panel视频教程 以下为软件下载链接,这些版本都可以安装在win7 win8
最新出的2.6版本已经成功在windos 10环境下安装成功感觉很是不错,不会出现卡死问题和硬件冲突等问题 安
研究了好久还是不明白eplan设备连接图如何做成下图右边的模式, 只能做成这样 修改过主数据设备连接图
RT,请各位大侠帮忙,
各位大神?用天正电气好还是eplan???
哪位大神会解决
手上有一份eplan图纸,双击某些元器件图,属性看到块参考、属性(元件):部件放置,但不知道是什么,直接
eplan2.7,有office2016的64位的,但是打开部件库的时候报这个错误,怎么回事啊,求大神指点
eplan怎么打开step格式的文件
eplan用的人很多,我在装的时候也遇到过很多问题,后来装好了想写个教程,分享下安装经验。 这是eplan2.4 的安装文件http://pan.baidu.com/s/1pJGFuwr
求助:符号里没有中文索引怎么办
如题,在WIN10下安装了EPLAN2.1,每次开机都要重新禁用数字签名,怎么才能一劳永逸,求大神赐教
从今天开始努力学习eplan,我会把每天学到的总结一下,写成日记形式,期待能坚持更久。欢迎大家一起来
打不开,怎么破?
文本中输入文字时如何随时换行?
想让自己早点建立起来画图的概念性的东西
你可能感兴趣的吧...
发贴红色标题
签到六倍经验
兑换本吧会员
赠送补签卡1张,获得
助攻总额: 43W
贴吧热议榜
发表后自动分享本贴
使用签名档&您所在位置: &
&nbsp&&nbsp&nbsp&&nbsp
项目融资的框架结构分析(30页)详解.ppt 30页
本文档一共被下载:
次 ,您可全文免费在线阅读后下载本文档。
下载提示
1.本站不保证该用户上传的文档完整性,不预览、不比对内容而直接下载产生的反悔问题本站不予受理。
2.该文档所得收入(下载+内容+预览三)归上传者、原创者。
3.登录后可充值,立即自动返金币,充值渠道很便利
你可能关注的文档:
··········
··········
项目融资的框架结构 项目投资结构 项目的信用保证结构 项目资金结构 项目融资结构 第一节 概述 1.项目投资结构的定义 项目资产所有权结构。指项目实体的法律组织结构,即发起人对项目资产权益的法律拥有形式和发起人之间的法律合作关系。 1987年3月,美国迪斯尼公司与法国政府签署协议,在法国巴黎市郊兴建欧洲迪斯尼乐园。东方汇理银行作为财务顾问,负责项目投资结构和融资结构的设计。 第二节
公司型投资结构 公司型合资结构的优缺点 优点: 集中项目资产所有权 有限责任,风险隔离 可以实现表外融资 投资转让比较容易 融资安排比较灵活 缺点: 对现金流量难以直接控制 税务灵活性差 双重征税 图2-2
收购新西兰钢铁联合企业的公司型投资结构 收购新西兰钢铁联合企业的合资公司出资比例
单位:百万元 1987年3月,美国迪斯尼公司与法国政府签署协议,在法国巴黎市郊兴建欧洲迪斯尼乐园。东方汇理银行作为财务顾问,负责项目投资结构和融资结构的设计。 契约型合资结构 投资者之间的关系是合作关系而非合伙关系,每个投资者都不能代表其它投资者,对其它投资者的债务或民事责任也不承担共同和连带责任。 根据合资协议成立项目管理委员会负责重大决策,项目管理委员会指定项目经理负责项目日常管理。 图2-3
澳大利亚波特兰铝厂契约型投资结构 契约型合资结构的优缺点 (适用于产品“可分割”的项目) 优点: 发起人对项目产品拥有直接支配权 充分利用税务优惠 各发起人可独立安排融资 缺点: 投资转让程序比较复杂 管理程序比较复杂
1987年3月,美国迪斯尼公司与法国政府签署协议,在法国巴黎市郊兴建欧洲迪斯尼乐园。东方汇理银行作为财务顾问,负责项目投资结构和融资结构的设计。 采用普通合伙制的项目投资结构 有限合伙制结构 有限合伙由两种合伙人组成,一是普通合伙人(General Partner) ;二是有限合伙人(Limited Partner) 。 普通合伙人负责合伙制项目的组织和经营管理,并承担对合伙项目债务的无限连带责任; 有限合伙人不参与项目日常管理,对合伙项目的债务责任以其出资额为限。 有限合伙制项目投资结构 1987年3月,美国迪斯尼公司与法国政府签署协议,在法国巴黎市郊兴建欧洲迪斯尼乐园。东方汇理银行作为财务顾问,负责项目投资结构和融资结构的设计。 在选择项目投资结构时,应考虑下列因素: 项目风险和项目债务隔离程度的要求 对税务优惠利用程度的要求 财务处理方法的要求 产品分配和利润提取的要求 资产转让的灵活性要求 补充资本注入的灵活性要求 融资便利的要求 小结:四种结构比较 2001年3月,澳大利亚新南威尔士州政府决定采用公私合作策略开发学校。第一期项目共9所学校,投资1.314亿澳元;第二期项目有10所学校,投资1.775亿澳元。两个项目均采用“建造—维护—移交”模式,特许期均为30年(包括建设期)。 * * 第二章 项目投资结构 公司型合资结构 契约型合资结构 合伙制结构 信托基金结构 2.项目融资中投资结构的分类 公司型投资结构 非公司型投资结构 ■ 契约式合作结构 ■ 合伙制结构 ■ 信托基金结构 本资料来源 当前文档修改密码:83628 更多资料请访问精品资料网(www.cnshu.cn) 3.选择投资结构的原则 最大限度地实现项目发起人的投资目标 4.在选择项目投资结构时,应考虑下列因素: 项目风险和项目债务隔离程度的要求 对税务优惠利用程度的要求 财务处理方法的要求 产品分配和利润提取的要求 资产转让的灵活性要求 补充资本注入的灵活性要求 融资便利的要求 美国迪斯尼公司对结构的设计提出了三个目标要求:
第一、融资结构必须保证可以筹集到项目所需的资金;
第二、项目的资金成本必须低于“市场平均成本”;
第三、本公司必须获得高于 “市场平均水平”的经营自主权。 法国政府在原则协议中规定:
欧洲迪斯尼乐园项目的多数股权必须掌握在欧洲共同体(现改为欧盟) 居民的手中。 欧洲迪斯尼乐园项目融资 怎么办? 项目公司 公司型投资结构 公司型投资结构是按照公司法成立的与其投资者完全分离的独立法律实体。 各发起人共同经营、共负盈亏,共担风险,并按照股份份额分配利润。 如何应对“双重征税”现象? 如何利用“税务亏损”?
假定A公司需要煤,但缺乏经营煤矿的经验且不能充分吸收税务优惠,B公司是一家煤矿经营公司,且能吸收税务优惠,希望通过项目获得利润并享有一定的控制权。 他们将如何设计投资结构来满足这些目标?
A公司 2. 贷款或无投票权的优先股(10年后可转换成普通股) 5.反映B公司吸收税务优惠的产品购买协议 项目公司 B公司 1.100股普通股(100%的公司股) 3. 煤矿项目经营协议 负责经营管理煤矿 4.合
正在加载中,请稍后...&·&&·&发帖说明 本小组需要加入才可以发帖
[四川]超高层框筒结构商业办公楼项目管理策划书(108页)
发表于&&&&4516人浏览&&&&3人跟帖&&&&&&
文件格式:pdf
文件大小:1.40MB
资料目录第一章 前 言 6 第二章 工程项目概况7 2.1工程概况7 2.1.1项目位置7 2.1.2场地现状及周边环境8 2.2平面图9 2.2.1 原始地貌图9 2.2.2用地红线图9 2.2.3规划总平面图9 第三章 建筑市场资源分析及选择10 3.1 综合体工程承接资源现状10 3.2 成都市场资源现状10 3.2.1土方及抗浮锚杆施工市场认识10 3.2.2建筑主体承包市场认识11 3.2.3各指定分包及独立分包资源的认识12 3.2.4监理市场的认识12 3.3 成都商业项目供方库建立13 3.3.1供方库建立的思路13 3.3.2华润建筑总包的优势14 第四章 项目工程管理难重点分析15 4.1总工期及重要里程碑控制15 4.2特殊项目较多,综合协调组织要求高16 4.3租户管理24 4.4总包华润建筑对分包的照管26 4.5设计配合27 4.6机电设备运输28 4.7大型设备房深化设计28 4.8内部协调28 4.8.1与商业市场部招商工作的协调配合28 4.8.2与后期物业移交的协调配合29 第五章 项目建设目标30 5.1项目愿景30 5.2质量目标30 5.3工期目标30 5.4 成本控制目标30 5.5 安全文明目标30 5.6管理目标30 5.7团结合作目标30 第六章 项目工程管理模式及组织架构31 6.1类似工程项目管理模式31 6.1.1商业项目/大型综合体项目常用项目管理模式31 6.1.2成都类似项目的管理模式33 6.1.3置地兄弟公司万象城项目管理模式34 6.1.4成都万象城可采用管理模式分析34 6.2项目工程管理模式建议36 6.3项目管理组织架构37 6.4项目主要岗位职责38 6.4.1项目经理38 6.4.2项目副经理38 6.4.3土建专业负责人39 6.4.4机电专业负责人39 6.4.5土建工程师39 6.4.6精装修工程师40 6.4.7强电工程师40 6.4.8弱电工程师40 6.4.940 6.4.10给排水工程师40 6.4.11文员40 第七章 合约规划42 7.1 合同框架42 7.2 合同分类明细44 7.3 项目总承包合约计价模式49 7.3.1华润建筑总承包合同范围49 7.3.2华润建筑总承包合同的计价方式50 7.4 合同管理52 7.4.1 工程范围的划分52 第八章 设计及深化设计规划53 8.1 高品质与设计成本管理53 8.2 设计及深化设计划分53 8.3 设计单位的管理55 8.3.1 综合体项目和住宅项目设计工作差异55 8.3.2项目施工图设计单位选择55 8.4 招标图、施工图管理56 8.5 图纸会审、设计变更管理57 8.6 材料选型定板59 8.7 设计深化计划59 第九章 工程进度规划60 9.1 项目进度计划规划60 9.1.1 项目进度计划编制内容60 9.1.2 项目进度计划编制原则60 9.1.3 项目进度计划实施管控措施60 9.2 项目总进度计划61 9.2.1 项目开发计划编制说明61 9.2.2 项目开发进度控制计划61 9.3 进度保证61 9.3.1 图纸计划62 9.3.2 方案编制计划62 9.3.3 供应商及指定分包定标计划62 9.3.4 材料设备报审计划及进场计划62 9.3.5 大型施工机械进出场计划62 9.3.6 检验及验收计划62 9.3.7项目进度的控制与管理63 第十章 前期准备65 10.1 地下物探、场平、围墙、临时水电65 10.2 工地围墙65 10.3 场地平整65 10.4 临时办公区65 10.5 临时施工水电65 第十一章 施工总平面规划66 11.1 布置原则66 11.2 总66 11.2.1塔吊及施工电梯布置66 11.2.2与土方工程的配合事项67 11.2.3物料堆场、加工场地、仓库区规划67 11.2.4样板区规划67 11.2.5围墙及大门规划67 11.2.6华润建筑总包办公区与生活区的规划与安排67 11.2.7施工水电68 11.2.8现场交通组织68 11.2.9施工总平面管理68 11.2.10 分阶段场地布置69 第十二章 质量规划70 12.1 工程质量策划内容70 12.1.1 工程质量管理体系70 12.1.2 设计质量的控制70 12.1.3 合同招标质量技术要求72 12.1.4 方案审查73 12.1.5 样板管理75 12.1.6 关键工程质量控制要点及措施77 12.1.7 质量通病的预控以及处理80 12.1.8 日常质量管理80 12.1.9 质量事故处理80 12.1.10 施工验收及工序控制80 12.1.11 联合验收81 12.1.12 移交租户前的验收81 12.1.13 竣工验收81 12.2 工程质量目标82 第十三章 工程管理方案83 13.1 基坑支护83 13.2 钢结构83 13.3 幕墙工程管理83 13.4 机电工程83 13.4.1 机电工程的难重点83 13.4.2 机电工程的管理84 13.5 精装修85 第十四章 成本管理86 14.1 成本目标86 14.2 设计阶段成本控制86 14.3 施工阶段成本控制86 14.3.1 成本控制要点86 14.3.2 工程进度款控制87 14.3.3 变更签证及索赔控制87 14.4 结算阶段成本控制87 14.4.1 结算审核87 14.4.2 结算分析88 14.4.3 合同纠纷88 第十五章 安全文明及环境管理89 15.1 安全文明施工管理目标89 15.1.1 安全施工管理目标89 15.2 工程安全文明施工管理措施89 15.2.1 施工现场标识系统89 15.2.2 施工主入口大门89 15.2.3 施工主入口形象要求89 15.2.4 临时围墙设计89 15.2.5 施工单位现场办公时要求90 15.2.6 项目中心人员配备要求90 15.2.7 现场道路90 15.2.8 卫生间90 15.3 过程管理90 15.4 未取得施工许可证手续前的安全管理90 第十六章 对承包商的管理92 16.1 对监理的管理92 16.2 对总分包的管理93 第十七章 招商客户及装修租户管理96 17.1 招商环节的客户管理96 17.2 租户移交96 17.3 租户装修配合及协调97 第十八章 外部协调99 18.1 对外沟通99 18.2 对内沟通99 18.3 对施工单位100 第十九章 风险控制101 19.1市场等外部带来的风险101 19.1.1价格风险101 19.1.2市场风险101 19.1.3招商风险101 19.1.4法律、政策风险101 19.2工程项目建设可能出现的风险101 19.2.1工期延误101 19.2.2质量差101 19.2.3负面事件101 19.2.4成本超支101 19.2.5合同纠纷102 19.3履约情况评估102 19.4租户移交风险评估102 第二十章 验收移交104 20.1 消防验收104 20.2 竣工验收104 20.3 移交104 20.4 物业的承接查验104 20.4.1准备阶段104 20.4.2实施阶段104 20.4.3跟进处理阶段105 20.4.4开荒、保洁105 第二十一章 信息管理106 21.1 文件信息管理106 21.2 变更管理106内容简介工程概况:   本工程总规划用地面积:52,031㎡,项目净用地46,671㎡,容积率约4.0,总建筑面积317,639㎡,其中地上建筑面积191,268㎡(其中计容面积186,804㎡,不计容面积4464㎡),地下126371㎡。裙楼共五层,局部六层,功能为商业,塔楼共39层,功能为办公,地下三层,功能为商业和停车。   ……   工程重难点分析:   1、幕墙及屋面:的幕墙形式复杂,异型结构较多,技术及质量要求高,而且幕墙工程防空气渗透、焊接及防腐、封边及封口、材料质量控制、工序交叉及成品保护是重点。   2、电影院:项目有电影院设置,大堂和影厅层高较高,特别是影厅的楼板均呈阶梯型,结构比较复杂。此外由于电影院各影厅之间隔声要求高,因此影厅之间穿墙、楼板管线封堵应符合隔声要求,楼板和隔墙的厚度应满足隔声要求,电影院内及周边设备应考虑降噪的要求。   3、精装修工程:项目的精装修质量控制是一大难点,“三个环节”(设计质量控制、材料质量控制及施工质量控制)与“两个关键”(关键部位、关键工序)控制是装修工程质量高水平的设计及高质量施工的重要原则。精装修工程涉及观感效果的重要节点,必须样板先行,经设计、顾问及业主等相关单位共同确认后方可展开大面积施工。定期由监理组织专业协调会,以解决交叉作业,界面划分等问题。   4、智能化工程:建筑设备自动化系统或称楼宇自动化系统,是将建筑物内的电力、照明、空调、给排水、运输、广播、电梯等设备集中监控管理的综合系统。单从智能化各子系统的内容来看,所包含的弱电系统比较全面,涉及范围较为广泛,各系统之间的接口数量较多并且复杂,所涉及到的智能化系统中的产品比较全面而且庞大,施工过程中的交叉施工面广,是又一大难点。   ……   第十一章 施工总平面规划   第十二章 质量规划   第十三章 工程管理方案   13.1 基坑支护   13.2 钢结构   13.3 幕墙工程管理   13.4 机电工程   13.5 精装修   第十四章 成本管理   14.1 成本目标   14.2 设计阶段成本控制   14.3 施工阶段成本控制   14.4 结算阶段成本控制   第十五章 安全文明及环境管理   15.1 安全文明施工管理目标   15.2 工程安全文明施工管理措施   15.3 过程管理   15.4 未取得施工许可证手续前的安全管理   ……   PDF格式,108页,编制于2009年。溜冰场 溜冰场屋面钢结构安装示意图 幕墙及屋面工程
分享到微信朋友圈
打开微信"扫一扫",扫描上方二维码请点击右上角按钮&,选择&
&&发表于&&|&
超高层框筒结构商业办公楼项目管理策划书,108页,包括基坑工程管理方案、钢结构工程方案、幕墙工程管理方案、机电工程、精装修工程、成本管理、安全文明及环境管理等内容,重难点多,编制详细,可供参考。
&&发表于&&|&
&& &&筑龙币+44
很好的资料,下载参考下
&&发表于&&|&
&& &&筑龙币+110
目标明确,条理清晰,指导作用强,
资料下载后才能评论,评论超过10个字可获得筑龙币奖励!
&回帖后跳转到最后一页
筑龙学社APP扫码
立即免费下载资料
只需1元,认证E会员,百万资料免费下
【微信扫码支付】
您已成功认证为E会员
删除理由:
&广告/SPAM
还可以输入&120&字
他一定是哪里做的不够好,别替他瞒着了,告诉我们吧~
:&400-900-8066在 SegmentFault,学习技能、解决问题
每个月,我们帮助 1000 万的开发者解决各种各样的技术问题。并助力他们在技术能力、职业生涯、影响力上获得提升。
点击阅读原文
webpack多页应用架构系列(十四):No复制粘贴!多项目共用基础设施
日 发布,来源:
本文首发于Array_Huang的技术博客——实用至上,非经作者同意,请勿转载。原文地址:如果您对本系列文章感兴趣,欢迎关注订阅这里:
本文介绍如何在多项目间共用同一套基础设施,又或是某种层次的框架。
基础设施是什么?
一个完整的网站,不可能只包含一个jQuery,或是某个MVVM框架,其中必定包含了许多解决方案,例如:如何上传?如何兼容IE?如何跨域?如何使用本地存储?如何做用户信息反馈?又或者具体到如何选择日期?等等等等……这里面必定包含了UI框架、JS框架、各种小工具库,不论是第三方的还是自己团队研发的。而以上所述的种种,就构成了一套完整的解决方案,也称基础设施。
基础设施有个重要的特征,那就是与业务逻辑无关,不论是OA还是CMS又或是CRM,只要整体产品形态类似,我们就可以使用同一套基础设施。
框架这个概念很泛,泛得让人心生困惑,但抽象出来说,框架就是一套定义代码在哪里写、怎么写的规则。不能说我们要怎么去用框架,反倒是框架控制我们怎么去填代码。
本系列前面的十来篇文章,分开来看是不同的点,但如果所有文章合起来,并连同示例项目(),实际上阐述的就是一套完整的多页应用框架(或称架构)。这套框架规定了整个应用的方方面面,举几个例子:
每个页面的文件放在哪个目录?
页面的HTML、入口文件、css、图片等等应该怎么放?
编码规范(由ESLint来保证)。
当然,这只是我的框架,我希望你们可以看懂了,然后根据自己的需求来调整,变成你们的框架。甚至说,我自己在做不同类型的项目时,整体架构也都会有不少的变化。
为什么要共用基础设施/框架/架构?
数月前,我找同事要了一个他自己写的地区选择器,拉回来一看遍地都是ESLint的报错(他负责的项目没有用ESLint,比较随意),我这人有强迫症的怎么看得过眼,卷起袖子就开始改,改好也就正常使用了。过了一段时间,来了新需求,同事在他那改好了地区选择器又发了一份给我,我一看头都大了,又是满地报错,这不是又要我再改一遍吗?当时我就懵了,只好按着他的思路,对我的版本做了修改。从此,也确立了我们公司会有两份外观功能都一致,但是实现却不一样的地区选择器。
很坑爹是吧?
多项目共享架构变动
上面说的是组件级的,下面我们来说架构级别的。
我在公司主要负责的项目有两个,在我的不懈努力下,已经做到跟我的脚手架项目大体上同构了。但维持同构显然是要付出代价的,我在脚手架项目试验过的改进,小至改个目录路径,大至引入个plugin啊loader啊什么的,都要分别在公司的两个项目里各做一遍,超烦哒(嫌弃脸
试想只是两个项目就已经这样了,如果是三个、四个,甚至六个、七个呢?堪忧啊堪忧啊!
快速创建新项目
不知道你们有没有这样子的经验:接到新项目时,灵机一动“这不就是我的XX项目吗?”,然后赶紧搬出XX项目的源码,然后删掉业务逻辑,保留可复用的基础设施。
也许你会说,这不已经比从零开始要好多了吗?总体上来说,是吧,但还不够好:
你需要花时间重温整个项目的架构,搞清楚哪些要删、哪些要留。
毕竟是快刀斩乱麻,清理好的架构比不上原先的思路那么清晰。
清理完代码想着跑跑看,结果一大堆报错,一个一个来调烦的要命,而且还很可能是删错了什么了不得的东西,还要去原先额项目里搬回来。
以上这些问题,你每创建一个新项目都要经历一遍,我问你怕了没有。
脚手架不是可以帮助快速创建新项目吗?
是的没错,脚手架本身就算是一整套基础设施了,但依然有下列问题:
维护一套脚手架你知道有多麻烦吗?公司项目一忙起来,加班都做不完,哪顾得上脚手架啊。最后新建项目的时候发现脚手架已经落后N多了,你到底是用呢还是不用呢?
甭跟我提Github上开源的脚手架,像我这么有个性的人,会直接用那些吗?
不同类型的项目技术选型不一样,比如说:需不需要兼容低版本IE;是web版的还是Hybrid App的;是前台还是后台。每一套技术选型就是一套脚手架,难道你要维护这么多套脚手架吗?
上述问题,通过共用基础设施,都能解决
既然共用了基础设施,要怎么改肯定都是所有项目一起共享的了,不论是组件层面的还是架构本身。
假设你每个不同类型的项目都已经准备好了与其它项目共用基础设施,那么,你根本不需要花费多余的维护成本,创建新项目的时候看准了跟之前哪个项目是属于同一类型的,凑一脚就行了呗,轻松。
怎么实现多项目共用一套基础设施呢?
在之前的文章里,我使用的一直都是这个脚手架项目作为示例,而为了实践多项目共用基础设施,我对该项目的架构做了较大幅度的调整,升级为2.0.0版本。为免大家看前面的文章时发现示例项目货不对板,感到困惑,我新开了一个repo来存放调整后的脚手架:(https://github.com/Array-Huang/webpack-seed-v2),并且,我在两个项目的README里我都注明了相应的内容,大家可不要混淆了哈。
下面就以从到的改造过程来介绍如何实现多项目共用基础设施。
改造思路其实很简单,就是把预想中多个项目都能用得上的部分从现有项目里抽离出来。
抽离的说法是针对原项目的,如果单纯从文件系统的角度来说,只不过是移动了某些文件和目录。
移动到哪里了呢?自然是移动到与项目目录同级的地方,这样就方便多个项目引用这个核心了。
如果你跟我一样,在原项目中定义了大量路径和alias的话,移动这些文件/目录就只是个改变量的活了:
var path = require('path');
var moduleExports = {};
// 源文件目录
moduleExports.staticRootDir = path.resolve(__dirname, '../../'); // 项目根目录
moduleExports.srcRootDir = path.resolve(moduleExports.staticRootDir, './src'); // 项目业务代码根目录
moduleExports.vendorDir = path.resolve(moduleExports.staticRootDir, './vendor'); // 存放所有不能用npm管理的第三方库
moduleExports.dllDir = path.resolve(moduleExports.srcRootDir, './dll'); // 存放由各种不常改变的js/css打包而来的dll
moduleExports.pagesDir = path.resolve(moduleExports.srcRootDir, './pages'); // 存放各个页面独有的部分,如入口文件、只有该页面使用到的css、模板文件等
moduleExports.publicDir = path.resolve(moduleExports.srcRootDir, './public-resource'); // 存放各个页面使用到的公共资源
moduleExports.logicDir = path.resolve(moduleExports.publicDir, './logic'); // 存放公用的业务逻辑
moduleExports.libsDir = path.resolve(moduleExports.publicDir, './libs'); // 与业务逻辑无关的库都可以放到这里
moduleExports.configDir = path.resolve(moduleExports.publicDir, './config'); // 存放各种配置文件
moduleExports.componentsDir = path.resolve(moduleExports.publicDir, './components'); // 存放组件,可以是纯HTML,也可以包含js/css/image等,看自己需要
moduleExports.layoutDir = path.resolve(moduleExports.publicDir, './layout'); // 存放UI布局,组织各个组件拼起来,因应需要可以有不同的布局套路
// 生成文件目录
moduleExports.buildDir = path.resolve(moduleExports.staticRootDir, './build'); // 存放编译后生成的所有代码、资源(图片、字体等,虽然只是简单的从源目录迁移过来)
module.exports = moduleE
var path = require('path');
var dirVars = require('./base/dir-vars.config.js');
module.exports = {
// 模块别名的配置,为了使用方便,一般来说所有模块都是要配置一下别名的
/* 各种目录 */
iconfontDir: path.resolve(dirVars.publicDir, 'iconfont/'),
configDir: dirVars.configDir,
/* vendor */
/* bootstrap 相关 */
metisMenu: path.resolve(dirVars.vendorDir, 'metisMenu/'),
/* libs */
withoutJqueryModule: path.resolve(dirVars.libsDir, 'without-jquery.module'),
routerModule: path.resolve(dirVars.libsDir, 'router.module'),
libs: path.resolve(dirVars.libsDir, 'libs.module'),
/* less */
lessDir: path.resolve(dirVars.publicDir, 'less'),
/* components */
/* layout */
layout: path.resolve(dirVars.layoutDir, 'layout/html'),
'layout-without-nav': path.resolve(dirVars.layoutDir, 'layout-without-nav/html'),
/* logic */
cm: path.resolve(dirVars.logicDir, 'common.module'),
cp: path.resolve(dirVars.logicDir, 'common.page'),
/* config */
configModule: path.resolve(dirVars.configDir, 'common.config'),
bootstrapConfig: path.resolve(dirVars.configDir, 'bootstrap.config'),
// 当require的模块找不到时,尝试添加这些后缀后进行寻找
extentions: ['', 'js'],
抽离的方法很简单,那么关键就看到底是哪些部分可以抽离、需要抽离了,这一点看我就比较清晰了:
先来看根目录:
├─ core # 抽离出来的基础设施,或称“核心”
├─ example-admin-1 # 示例项目1,被抽离后剩下的
├─ example-admin-2 # 示例项目2,嗯,简单起见,直接复制了example-admin-1,不过还是要做一点调整的,比如说配置
├─ npm-scripts # 没想到npm-scripts也能公用吧?
├─ vendor # 无法在npm上找到的第三方库
├─ .eslintrc # ESLint的配置文件
├─ package.json # 所有的npm库依赖建议都写到这里,不建议写到具体项目的package.json里
再来看看core目录
├─ _webpack.dev.config.js # 整理好公用的开发环境webpack配置,以备继承
├─ _webpack.product.config.js # 整理好公用的生产环境webpack配置,以备继承
├─ webpack-dll.config.js # 用来编译Dll文件用的webpack配置文件
├─ manifest.json # Dll文件的资源目录
├─ package.json # 没有什么实质内容,我这里就放了个编译Dll用的npm script
├─components # 各种UI组件
│ ├─footer
│ ├─header
│ ├─side-menu
│ └─top-nav
├─config # 公共配置,有些是提供给具体项目的配置来继承的,有些本身就有用(比如说“核心”部分本身需要的配置)
├─dll # 之前的文章里就说过,我建议把各种第三方库(包括npm库也包括非npm库)都打包成Dll来加速webpack编译过程,这部分明显就属于基础设施了
├─iconfont # 字体图标能不能公用,这点我也是比较犹豫的,看项目实际需要吧,不折腾的话还是推荐公用
├─layout # 布局,既然是同类型项目,布局肯定是基本一样的
│ ├─layout
│ └─layout-without-nav
├─less # 样式基础,在我这项目里就是针对bootstrap的SB-Admin主题做了修改
│ ├─base-dir
│ └─components-dir
├─libs # 自己团队研发的一些公共的方法/库,又或是针对第三方库的适配器(比如说对alert库封装一层,后面要更换库的时候就方便了)
├─npm-scripts # 与根目录下的npm-scripts目录不一样,这里的不是用来公用的,而是“核心”使用到的script,比如我在这里就放了编译dll的npm script
└─webpack-config # 公用的webpack配置,尤其是关系到“核心”部分的配置,比如说各第三方库的alias。这里的配置是用来给具体项目来继承的,老实说我现在继承的方法也比较复杂,回头看看有没有更简单的方法。
├─inherit
└─vendor
最后总结一下,是哪些资源被抽离出来了:
webpack配置中属于架构的部分,比如说各种loader、plugin、“核心”部分的alias。
“核心”部分所需的配置,比如我这项目里为了定制bootstrap而建的配置。
各种与UI相关的资源,比如UI框架/样式、UI组件、字体图标。
第三方库,以Dll文件的形式存在。
自研库/适配器。
上传上来以后发现图被压小了,请到这里看
附系列文章目录(同步更新)
本文首发于Array_Huang的技术博客——实用至上,非经作者同意,请勿转载。原文地址:如果您对本系列文章感兴趣,欢迎关注订阅这里:
我要该,理由是:
关闭理由:
删除理由:
忽略理由:
推广(招聘、广告、SEO 等)方面的内容
与已有问题重复(请编辑该提问指向已有相同问题)
答非所问,不符合答题要求
宜作评论而非答案
带有人身攻击、辱骂、仇恨等违反条款的内容
无法获得确切结果的问题
非开发直接相关的问题
非技术提问的讨论型问题
其他原因(请补充说明)

我要回帖

更多关于 c语言建立结构体 的文章

 

随机推荐