最新要闻
- 沪上阿姨外包装旗袍图被质疑不雅 开叉至大腿根部不正常?官方回应
- 当前快报:Nvidia宣布GeForceNow将获得RTX服务器
- 天天日报丨辣椒越皱 就越辣?科学家好好研究了一番
- 全球时讯:128位《王者荣耀》选手通过职业技能等级考试 获“电子竞技员”证书
- 世界滚动:风云气象卫星今年两连发:中国将成全世界唯一!
- 【当前热闻】有开机广告用户照样买 全球电视销量TOP5 中国产占3席
- Intel 56核心发烧U跑分逼近AMD 64核心:峰值功耗1100W!
- 世界热头条丨易企盈控股集团 深圳有限公司_对于易企盈控股集团 深圳有限公司简单介绍
- Model 3还要便宜 分析师看衰特斯拉:不降价达不到目标
- 爱奇艺:《狂飙》热度刷新历史纪录 会员规模有信心继续增长
- 每日简讯:ChatGPT承认:对人文学科 有3个负面影响
- 环球速讯:美女UP主买理想ONE一年血亏10万 欲哭无泪:我也要去维权
- 焦点热议:跨境电商平台公布海外数字化展会首批重点名单 涵盖新能源等多个外贸核心行业
- 热讯:女孩用吹风机吹头发:插座处突然着火
- 播报:RTX 4060售价6999元 七彩虹将星X15 AT游戏本图赏
- 130MB/s读写稳如磐石!希捷酷玩系列蜘蛛侠特别版游戏硬盘2TB评测:RGB超有范儿
广告
手机
iphone11大小尺寸是多少?苹果iPhone11和iPhone13的区别是什么?
警方通报辅警执法直播中被撞飞:犯罪嫌疑人已投案
- iphone11大小尺寸是多少?苹果iPhone11和iPhone13的区别是什么?
- 警方通报辅警执法直播中被撞飞:犯罪嫌疑人已投案
- 男子被关545天申国赔:获赔18万多 驳回精神抚慰金
- 3天内26名本土感染者,辽宁确诊人数已超安徽
- 广西柳州一男子因纠纷杀害三人后自首
- 洱海坠机4名机组人员被批准为烈士 数千干部群众悼念
家电
读Java实战(第二版)笔记18_基于Lambda的领域特定语言
(资料图片)
1.编程语言
1.1.仍然是一门语言
1.1.1.以最清晰、最容易理解的方式传递信息
1.2.代码的易读性和易理解性在软件中的重要性甚至更胜一筹
2.领域特定语言DSL
2.1.为了解决某个特定业务领域问题的一种自定义语言
2.1.1.一种小型语言
2.1.2.大多都不通用
2.1.3.为某个特定领域定制化而生
2.2.流畅式(fluent style)
2.2.1.链接(chaining)方法
2.3.别的底层实现细节都应该被隐藏
2.3.1.以这种方式设计的DSL才是一个用户友好的DSL
2.4.产生原因
2.4.1.沟通为王
2.4.1.1.代码应该能清晰地表达它的意图
2.4.1.2.被“非程序员”所理解
2.4.1.3.领域专家才能及时加入以验证代码是否符合业务需求
2.4.2.代码只编写一次,但会被阅读很多次
2.4.2.1.代码的可读性对软件的可维护性非常重要
2.5.资产
2.5.1.提升了你代码的抽象层次
2.5.2.使其能更加专注于业务目标
2.5.3.具有更好的可读性
2.6.负担
2.6.1.独立的代码需要测试和维护
2.7.优点
2.7.1.简洁
2.7.1.1.封装了业务逻辑
2.7.2.可读性
2.7.3.可维护性
2.7.4.高层的抽象性
2.7.5.专注
2.7.5.1.专门为表述业务领域规则而设计的语言
2.7.6.关注点隔离
2.7.6.1.使用专用的语言描述业务逻辑使得与业务相关的代码可以同应用的基础架构代码相分离
2.8.缺点
2.8.1.设计比较困难
2.8.2.开发代价
2.8.2.1.一项长期投资
2.8.3.额外的中间层
2.8.3.1.避免带来性能问题
2.8.4.要掌握的语言
2.8.5.宿主语言的局限性
3.外部DSL
3.1.独立DSL(stand-alone DSL)
3.2.需要付出更大的代价
3.2.1.从无到有进行创建,其语法与宿主语言几乎完全无关
3.2.2.设计DSL的语法
3.2.3.实现解析器和执行器(evaluator)
4.内部DSL
4.1.需要暴露恰当的类和方法,以使代码的编写逻辑更流畅
5.“多语言DSL”(polyglot DSL)
5.1.介于内部DSL与外部DSL之间的解决方案
5.2.可以在JVM上运行另一种通用编程语言
5.2.1.Scala
5.2.2.Groovy
6.DSL模式
6.1.方法链接(method chaining)
6.1.1.需要实现非常冗长的构建器
6.1.2.为了将顶层构建器与底层构建器相融合,需要使用大量的胶水代码
6.2.嵌套函数DSL(nested function DSL)
6.3.使用Lambda表达式的函数序列
6.3.1.在DSL中使用方法引用
7.Java API中的小型DSL
7.1.把Stream API当成DSL去操作集合
7.1.1.可以对集合中的元素进行过滤、排序、转换、归并等操作
7.2.将Collectors作为DSL汇总数据
8.DSL的实际应用
8.1.SQL是最通用且应用最广泛的DSL
8.2.jOOQ
8.2.1.一种SQL映射工具
8.3.Cucumber
8.3.1.行为驱动开发(behavior-driven development, BDD)
8.3.2.一种基于行为驱动的开发框架
8.4.Spring Integration
8.4.1.一种实现企业集成模式的Spring扩展库
9.生成字节码
9.1.匿名类
9.1.1.编译器会为每个匿名类生成一个新的.class 文件
9.1.2.文件名通常以ClassName$1这种形式呈现
9.1.3.生成大量的类文件是不利的
9.1.3.1.直接影响应用的启动性能
9.1.4.每个新的匿名类都会为类或者接口产生一个新的子类型
9.2.Lambda表达式
9.2.1.InvokeDynamic
9.2.1.1.Java7
9.2.1.2.字节码指令
9.2.1.3.创建额外的类现在被invokedynamic指令替代了
9.2.1.4.用于支持运行于JVM上的动态类型语言
9.2.1.5.将实现Lambda表达式的这部分代码的字节码生成推迟到运行时
9.2.2.将Lambda表达式的代码体填入到运行时动态创建的静态方法,就完成了Lambda表达式的字节码转换
9.2.2.1.Lambda表达式的代码块到字节码的转换由高层的策略变成了纯粹的实现细节
9.2.2.2.对无状态非捕获型Lambda,可以创建一个Lambda对象的实例,对其进行缓存,之后对同一对象的访问都返回同样的内容
9.2.2.3.没有带来额外的开销,没有额外的字段,也不需要进行静态初始化
9.2.2.4.没有额外的性能开销,因为这些转换都是必须的,并且结果也进行了链接
9.2.2.4.1.仅在Lambda首次被调用时需要转换,其后所有的调用都能直接跳过这一步,直接调用之前链接的实现
读Java实战(第二版)笔记18_基于Lambda的领域特定语言
沪上阿姨外包装旗袍图被质疑不雅 开叉至大腿根部不正常?官方回应
008 - 检验 (1)
JVM基础学习笔记
当前快报:Nvidia宣布GeForceNow将获得RTX服务器
天天日报丨辣椒越皱 就越辣?科学家好好研究了一番
全球时讯:128位《王者荣耀》选手通过职业技能等级考试 获“电子竞技员”证书
世界滚动:风云气象卫星今年两连发:中国将成全世界唯一!
【当前热闻】有开机广告用户照样买 全球电视销量TOP5 中国产占3席
Intel 56核心发烧U跑分逼近AMD 64核心:峰值功耗1100W!
世界热头条丨易企盈控股集团 深圳有限公司_对于易企盈控股集团 深圳有限公司简单介绍
fusion app自定义事件源码介绍(下)
Spring IOC官方文档学习笔记(十二)之基于Java的容器配置
【世界热闻】Flink之间的组件通信
Model 3还要便宜 分析师看衰特斯拉:不降价达不到目标
爱奇艺:《狂飙》热度刷新历史纪录 会员规模有信心继续增长
焦点热讯:Shell常用命令与脚本实例
每日热门:【算法训练营day58】LeetCode739. 每日温度 LeetCode496. 下一个更大元素
(三)浅谈人工智能:烽烟四起
【世界播资讯】Spark系列 - (2) Spark核心概念
每日简讯:ChatGPT承认:对人文学科 有3个负面影响
环球速讯:美女UP主买理想ONE一年血亏10万 欲哭无泪:我也要去维权
【算法训练营day57】LeetCode647. 回文子串 LeetCode516. 最长回文子序列
当前最新:006 - 数据类型、来源和清洗
焦点热议:跨境电商平台公布海外数字化展会首批重点名单 涵盖新能源等多个外贸核心行业
热讯:女孩用吹风机吹头发:插座处突然着火
播报:RTX 4060售价6999元 七彩虹将星X15 AT游戏本图赏
130MB/s读写稳如磐石!希捷酷玩系列蜘蛛侠特别版游戏硬盘2TB评测:RGB超有范儿
第七章 程序是在何种环境下运行的
二八轮动策略:基础与改进
Python迭代器是啥?
【世界速看料】学习笔记——Git命令
世界时讯:Vue相关笔记
吃面比吃米更易发胖 西安交大团队证实:三大原因
当前聚焦:中国联通空中基站研制成功:无人机留空最长8小时 信号覆盖100平方公里
爱玛MVP战神新国标电动两轮车直降千元:1499元 能跑40km
【天天报资讯】V社“钓鱼”打击外挂:《Dota 2》一次性封禁4万作弊玩家
全球聚焦:百度2022年赚了207亿 李彦宏放大招:多项业务整合文心一言
世界报道:Vue3从基础到精通
【算法训练营day56】LeetCode583. 两个字符串的删除工作 LeetCode72. 编辑距离
全球看点:孙正雯微博_孙正雯
女子连刷11个差评被曝光 当事人要起诉商家:视频流传到全网 严重影响生活
肉眼可见!今晚上演金星伴月木星相随 不看亏大了
热门看点:一年挣了3700亿元 马斯克被股东联合起诉:工资太高
热议:ROG推出新款XG27AQMR显示器:2K Fast IPS、300Hz刷新率
迅雷重磅升级堪比NAS:远程可看电脑片库 手机、电脑、电视全打通
当前动态:vue08----()
全球讯息:Cloudkit游标分页获取数据
教你编写SQLMap的Tamper脚本过狗
职场IT老手教你3步教你玩转可视化大屏设计,让领导眼前一亮!
三元锂电池剧烈萎缩 比亚迪刀片电池走对了:消费者纷纷买单
精彩看点:研究发现AI在某些方面不如婴儿:很难监测人类行为动机
死磕到底!车顶维权女车主:特斯拉刹车失灵事件过去3年 官方仍未提供数据
世界今日报丨RTX 4070游戏本性能平平:有媒体评测一半放弃了!
环球消息!会员数近1.2亿!爱奇艺2022首次全年盈利:净利13亿 会员限制已妥协
每日热门:【算法训练营day55】LeetCode392. 判断子序列 LeetCode115. 不同的子序列
今日快看!vue+html5实现上传图片
【全球播资讯】Linux命令-文件、磁盘管理
大势前瞻!文旅还是短视频,你弯道超车风口在这了
环球关注:杭州余杭新居民落户当天可拿市民卡,医保、社保同时办理
世界快资讯:网红老师张雪峰吐槽还60万房贷利息57万 道歉:朋友弄错了
有灵魂的米饭:仓浪河东北黑龙江五常大米稻花香5kg 37.9元大促
天天即时看!经典之作退场!开发商Rovio宣布《愤怒的小鸟》将下架安卓平台
当前滚动:广东一车主加完油从车窗撒钱离去引众怒:车主回应已致歉 为何最基本尊重做不到
1个App能扫全品牌共享单车!全能车被哈啰告上法庭判赔六千万元
环球百事通!拍一拍后缀怎么弄
今日热文:浅识面向对象和面向过程
世界短讯!Framework 中使用 Toolkit.Mvvm 的生成器功能
科幻杂志被ChatGPT生成投稿“淹没”:无奈关闭投稿渠道
拿下一百多项年度大奖!《艾尔登法环》累计销量破2000万份
世界最新:头皮发麻!半夜追剧腾讯视频突然跳转恐怖片 客服:需重新下载客户端
当前滚动:博主实测理想L7越野性能 李想:中国路上95%的车 一个项目都过不去
天天热消息:新一代国产本田雅阁内饰曝光:比美版少了多个实体按键
每日聚焦:大数据应用场景下,标签策略如何实现价值最大化?
通讯!98%的程序员,都没有研究过JVM重排序和顺序一致性
环球即时看!查看Linux系统下CPU、内存、硬盘等信息
环球短讯!第121篇: DOM常用类型(Document、Element)
全球实时:CountDownLatch的使用
世界速讯:鹏都农牧:缅甸肉牛暂无法通关,公司正在积极推进复工复产工作
天天看点:10岁小学生玩游戏18天花掉14万 退款申请腾讯无视:家长感慨一定看好支付密码
焦点精选!摩托罗拉Razr 2023外观曝光:超大外屏抢眼
全球微头条丨安卓都16GB内存了 iPhone 15 Pro还在挤牙膏
【时快讯】或6.58万起 疑似比亚迪海鸥售价曝光:最远能跑405km
中国香港影史首部票房破亿华语电影诞生 此前TOP10均为好莱坞
每日快看:【黑科技】GPS北斗卫星授时技术下的NTP网络时间服务器
世界热头条丨每天走路10000步很健康?错 大错特错!
踢翻日系!比亚迪又要对BBA动手了
当前报道:20年来最低点!PC出货量暴跌:Intel等巨头业绩“凉凉” 显卡存储也没人买
SpringCloud+Dubbo3 = 王炸 !
世界微动态丨理想汽车:被4S店PUA、不如看看直营无套路零售中心
网红玩具有危险!2岁幼童误吞28颗磁力珠 医生提醒:必须及时取出
叫板特斯拉 保时捷:单踏板模式制动能量回收效率不高
座位被占 女子爬火车行李架睡觉:千万不要模仿
环球资讯:WiFi万能钥匙联合长安汽车,“一键连接”拓展至车机端
木鱼cms系统审计小结
世界资讯:单调栈
灵魂摆渡的作者真的杀了他的妻子吗?灵魂摆渡的经典台词有哪些?
董明珠回应直播带货争议:不是为了卖产品 是推广技术
当前关注:12万就能上太空!日企将用高空气球开启太空旅游
【天天播资讯】昔日国内共享单车巨头!ofo小黄车被曝无法登录:超1600万人押金没退