xiongjia - 标记
如何成为一个会学习的人 豆瓣
作者: [日]粂原圭太郎 译者: 富雁红 长江文艺出版社 2020
在一个时间 碎片化 的时代,如何把时间高效使 用在提升自己价值的系统化 学习中去,已经成为每个人 必须解决的问题。而大多数 人觉得学习就行就像爬台阶 ,很难并且很辛苦。但是会 学习的人,总是能够轻松抓 住学习的窍门,让学习变成 一件顺理成章且高效的事情 。
本书通过相关学习方法 的深入介绍,向希望主动且 终身学习的人们传授了有效 的学习方法,其中包括如何 提高专注能力,提升考试成 绩;勇于尝试,让学习停不 下来的方法,提高思维能力 、记忆力和专注力的学习术 ;把“做不到”变成“做得到” 的学习方法;快乐学习的习 惯是如何养成的等方面。
2021年1月20日 已读
小家,越住越大 豆瓣
7.8 (100 个评分) 作者: 逯薇 中信出版集团 2016 - 5
房价高、面积小、东西多、收纳少;节奏快、压力大、时间紧、想法杂……这些是都市人生活普遍面临的问题。但是,即使只有有限的空间,也希望住得舒适、快乐, 纵然蜗居在不大的房子,也有一颗追求高品质生活的心。
前万科副总建筑师逯薇,初次公开居住秘密,300余幅手绘,一目了然,轻松教你学会居住
逯薇认为,居住并非与生俱来的本能,而是需要学习和掌握的技能 。本书的重点是“家的收纳痛点”。匹配中国中小户型特点,逯薇针对玄关收纳、客厅收纳、厨房橱柜、洗面柜、衣帽间收纳等问题,逐一提出解决方案。其中“逯薇式客厅大柜”、“厨房一金二银三区”、“高低台面”等先进设计理念,广受读者的追捧和模仿,并深入影响龙头家居企业。在这本精美的绘本中,她将自己的居住哲学一笔笔画出,加上幽默风趣的文字,让读者一目了然,可以轻松愉快的方式快速掌握家居设计、整理收纳、购置家私等问题的诀窍和要领。三百多页的绘本,处处透着作者对打造更美好的居住环境的坚定态度。她毫无保留地将居住理念的精华部分放在这本书中,更有无数的居住“干货”,带给你超值的居住技巧,让你的“住商”在短时间内快速得到提升。是一本提升生活品质不可错过的好书。房子不必大,住好才是家。翻开这本书,从打造一个整洁温暖的家开始新的旅程!
2021年1月14日 已读
Spring 5核心原理与30个类手写实战 豆瓣
作者: 谭勇德(Tom) 电子工业出版社 2019 - 7
《Spring 5核心原理与30个类手写实战》基于编程开发实践,不仅深度解析Spring 5的原理与新特性,更从环境准备、顶层结构设计、数据访问等方面一步步地推导出Spring的设计原理。在每个知识点上,均以大量的经典代码案例辅助讲解,使理论紧密联系实际。最后手写30个类,以体会Spring作者的创作过程,让每一位读者学以致用。
对于立志成为Java架构师的技术人员,以及对以Spring为核心的Java Web开发感兴趣的计算机专业高校生、在职Java开发人员来说,本书是一本具备超强实战意义的技术升级指南。读者通过本书可以看源码不再“晕车”,轻松找到入口;系统学习设计思想,提高解决问题的效率;培养架构思维能力,以及自驱学习能力。
2020年6月20日 已读
DEV
微服务架构设计模式 豆瓣
Microservices Patterns:With Examples in Java
作者: [美] 克里斯?理查森(Chris Richardson) 译者: 喻勇 译 机械工业出版社 2019 - 5
成功地开发基于微服务架构的应用软件,需要掌握一系列全新的架构思想和实践。在这本独特的书籍中,微服务架构的先驱、Java 开发者社区的意见领袖 Chris Richardson 收集、分类并解释了 44 个架构设计模式,这些模式用来解决诸如服务拆分、事务管理、查询和跨服务通信等难题。
本书将教会你如何开发和部署生产级别的微服务架构应用。这套宝贵的架构设计模式建立在数十年的分布式系统经验之上,Chris 还为开发服务添加了新的模式,并将它们组合成可在真实条件下可靠地扩展和执行的系统。本书不仅仅是一个模式目录,还提供了经验驱动的建议,以帮助你设计、实现、测试和部署基于微服务的应用程序。
本书包含:
如何(以及为什么)使用微服务架构
服务拆分的策略
事务管理和查询相关的模式
高效的测试策略
包括容器和 Serverless 在内的部署模式
本书专为熟悉标准企业应用程序架构的开发人员编写,使用 Java 编写所有示例代码。
2020年5月24日 已读
Learning RxJava 豆瓣
作者: Thomas Nield Packt Publishing 2017 - 6
About This Book
Explore the essential tools and operators RxJava provides, and know which situations to use them inDelve into Observables and Subscribers, the core components of RxJava used for building scalable and performant reactive applicationsDelve into the practical implementation of tools to effectively take on complex tasks such as concurrency and backpressure
Who This Book Is For
The primary audience for this book is developers with at least a fundamental mastery of Java.
Some readers will likely be interested in RxJava to make programs more resilient, concurrent, and scalable. Others may be checking out reactive programming just to see what it is all about, and to judge whether it can solve any problems they may have.
What You Will Learn
Learn the features of RxJava 2 that bring about many significant changes, including new reactive types such as Flowable, Single, Maybe, and CompletableUnderstand how reactive programming works and the mindset to "think reactively"Demystify the Observable and how it quickly expresses data and events as sequencesLearn the various Rx operators that transform, filter, and combine data and event sequencesLeverage multicasting to push data to multiple destinations, and cache and replay themDiscover how concurrency and parallelization work in RxJava, and how it makes these traditionally complex tasks trivial to implementApply RxJava and Retrolambda to the Android domain to create responsive Android apps with better user experiencesUse RxJava with the Kotlin language to express RxJava more idiomatically with extension functions, data classes, and other Kotlin features
In Detail
RxJava is a library for composing asynchronous and event-based programs using Observable sequences for the JVM, allowing developers to build robust applications in less time.
Learning RxJava addresses all the fundamentals of reactive programming to help readers write reactive code, as well as teach them an effective approach to designing and implementing reactive libraries and applications.
Starting with a brief introduction to reactive programming concepts, there is an overview of Observables and Observers, the core components of RxJava, and how to combine different streams of data and events together. You will also learn simpler ways to achieve concurrency and remain highly performant, with no need for synchronization. Later on, we will leverage backpressure and other strategies to cope with rapidly-producing sources to prevent bottlenecks in your application. After covering custom operators, testing, and debugging, the book dives into hands-on examples using RxJava on Android as well as Kotlin.
Style and approach
This book will be different from other Rx books, taking an approach that comprehensively covers Rx concepts and practical applications.
2020年3月22日 已读
Spring源码深度解析 豆瓣
作者: 郝佳 人民邮电出版社 2013 - 9
《Spring源码深度解析》从核心实现和企业应用两个方面,由浅入深、由易到难地对Spring源码展开了系统的讲解,包括Spring的设计理念和整体架构、容器的基本实现、默认标签的解析、自定义标签的解析、bean的加载、容器的功能扩展、AOP、数据库连接JDBC、整合MyBatis、事务、SpringMVC、远程服务、Spring消息服务等内容。
《Spring源码深度解析》不仅介绍了使用Spring框架开发项目必须掌握的核心概念,还指导读者如何使用Spring框架编写企业级应用,并针对在编写代码的过程中如何优化代码、如何使得代码高效给出切实可行的建议,从而帮助读者全面提升实战能力。
《Spring源码深度解析》语言简洁,示例丰富,可帮助读者迅速掌握使用Spring进行开发所需的各种技能。《Spring源码深度解析》适合于已具有一定Java编程基础的读者,以及在Java平台下进行各类软件开发的开发人员、测试人员等。
2020年3月8日 已读
时间商人 01 豆瓣
時間商人 不老不死、売ります
作者: [日] 水市惠 译者: 李田禾 上海文艺出版社 2014 - 10
2020年1月28日 已读
MyBatis技术内幕 豆瓣
作者: 徐郡明 电子工业出版社 2017 - 7
《MyBatis技术内幕》以MyBatis 3.4为基础,针对MyBatis的架构设计和实现细节进行了详细分析,其中穿插介绍了MyBatis源码中涉及的基础知识、设计模式以及笔者自己在实践中的思考。《MyBatis技术内幕》共4章,从MyBatis快速入门开始,逐步分析了MyBatis的整体架构以及核心概念,对MyBatis的基础支持层、核心处理层中各个模块的功能和实现细节进行了深入的剖析。除此之外,还分析了MyBatis插件的应用场景和实现原理,介绍了MyBatis与Spring集成开发的示例和原理,以及一些实践中的小技巧和小工具的使用方法。
《MyBatis技术内幕》旨在为读者理解MyBatis的设计原理、阅读MyBatis源码、扩展MyBatis功能提供帮助和指导,让读者更加深入地了解MyBatis的运行原理、设计理念。希望《MyBatis技术内幕》能够帮助读者全面提升自身的技术能力,让读者在设计业务系统时,可以参考MyBatis的优秀设计,更好地应用MyBatis。
2019年12月17日 已读
DEV
剑指Offer 豆瓣
7.8 (9 个评分) 作者: 何海涛 电子工业出版社 2012 - 1
《剑指Offer:名企面试官精讲典型编程题》剖析了50个典型的程序员面试题,从基础知识、代码质量、解题思路、优化效率和综合能力五个方面系统整理了影响面试的5个要点。全书分为7章,主要包括面试的流程,讨论面试流程中每一环节需要注意的问题;面试需要的基础知识,从编程语言、数据结构及算法三方面总结了程序员面试的知识点;高质量的代码,讨论影响代码质量的3个要素(规范性、完整性和鲁棒性),强调高质量的代码除了能够完成基本的功能之外,还能考虑到特殊情况并对非法输入进行合理的处理;解决面试题的思路,总结在编程面试中解决难题的常用思路,如果在面试过程中遇到了复杂的难题,应聘者可以利用画图、举例和分解复杂问题3种方法化繁为简,先形成清晰的思路再动手编程;优化时间和空间效率,介绍如何优化代码的时间效率和空间效率,读完这一章读者将学会常用的优化时间效率及空间换时间的常用算法,从而在面试中找到最优的解法;面试中的各种能力,本章总结应聘者在面试过程中如何表现学习能力和沟通能力,并通过具体的面试题讨论如何培养知识迁移能力、抽象建模能力和发散思维能力;两个面试案例,这两个案例总结了应聘者在面试过程中哪些举动是不好的行为,而哪些表现又是面试官所期待的行为。
2019年10月30日 已读
走进建筑师的家 豆瓣
建築家のすまいぶり
作者: [日本] 中村好文 译者: 杨婉蘅 南海出版公司 2016 - 1
《走进建筑师的家》是作家兼建筑家中村好文的随笔集。中村好文曾获多项建筑大奖,并为村上春树设计住宅。
住宅是生活的容器。居住在其中的人,能不能不造作、不畏缩、不顾虑、不忍耐,自然而然、畅畅快快地生活,是最需要关注的地方。
我们跟随中村好文走进24位顶级建筑师之家,如陈瑞宪的阳明山之家、尼尔斯的船屋、织田宪嗣的森林之家、木下道郎的狗狗之家、山本理显的“观景台”……把他们如雷贯耳的名气放到一边,观察建筑师在家里如何放松自我,与家人生活在其中。
建筑师自己的住宅多是杰作,因为可以不用在乎客户的脸色,随心所欲地自由发挥。中村好文也绝非冷静古板的观察者,他风趣诙谐,乐享人生,一边品尝着红酒和比萨,一边写下这些建筑家的住宅最巧妙的设计、最温馨的细节,并和建筑家们畅所欲言,探讨他们的建筑哲学、生活美学。
这样的家,不是精美的展示品,而是人生最温暖的港湾。我们即使只是看一看,也会舒心一整天。
2019年9月13日 已读
Spring Boot 2.0 Cookbook - Second Edition 豆瓣
作者: Alex Antonov 2018 - 2
Take your application development skills to the next level by implementing Spring Boot features effectively
About This Book
This collection of effective recipes serves as guidelines for Spring Boot application development
Get up to date with features of the latest version of Spring Boot 2.0
Tips and tricks to improve your efficiency through the stages of software development
Who This Book Is For
This book is for Java Developers who have good knowledge and understanding of Spring and Java application development.
What You Will Learn
Get to know Spring Boot Starters and create custom auto-configurations
Work with custom annotations that enable bean activation
Use DevTools to easily develop and debug applications
Learn the effective testing techniques by integrating Cucumber and Spock
Observe an eternal application configuration using Consul
Move your existing Spring Boot applications to the cloud
Use Hashicorp Consul and Netflix Eureka for dynamic Service Discovery
Understand the various mechanisms that Spring Boot provides to examine an application's health
In Detail
The Spring framework provides great flexibility for Java development, which also results in tedious configuration work. Spring Boot addresses the configuration difficulties of Spring and makes it easy to create standalone, production-grade Spring-based applications.
This practical guide makes the existing development process more efficient. Spring Boot Cookbook 2.0 Second Edition smartly combines all the skills and expertise to efficiently develop, test, deploy, and monitor applications using Spring Boot on premise and in the cloud. We start with an overview of the important Spring Boot features you will learn to create a web application for a RESTful service. Learn to fine-tune the behavior of a web application by learning about custom routes and asset paths and how to modify routing patterns. Address the requirements of a complex enterprise application and cover the creation of custom Spring Boot starters.
This book also includes examples of the new and improved facilities available to create various kinds of tests introduced in Spring Boot 1.4 and 2.0, and gain insights into Spring Boot DevTools. Explore the basics of Spring Boot Cloud modules and various Cloud starters to make applications in “Cloud Native” and take advantage of Service Discovery and Circuit Breakers.
Style and approach
This practical guide follows a recipe-based approach and provides extremely helpful guidelines to build, configure, and customize your Spring Boot applications.
Downloading the example code for this book You can download the example code files for all Packt books you have purchased from your account at http://www.PacktPub.com. If you purchased this book elsewhere, you can visit http://www.PacktPub.com/support and register to have the files e-mailed directly to you.
2019年8月12日 已读
DEV
器之美 豆瓣
うちの器
作者: [日]高桥绿 译者: 烨伊 新星出版社 2017 - 7
一日三餐,看似循规蹈矩,却是生活百味最单纯的呈现。料理造型师高桥绿精心布置每日餐桌,令每一餐都变得简单而庄重,枯燥乏味的日常充满了细小的丰盛感。她将美好心意注入每一只器皿,在她看来,出门前伴着小鸟啾鸣喝下的早茶,晚饭后慵懒的小酌时光,在霞光中与朋友碰个杯,天晴时爽朗的蓝色桌布衬着的明亮菜肴,都是幸福最真实的样貌。
2019年8月10日 已读
火花 豆瓣
火花
7.5 (62 个评分) 作者: [日] 又吉直树 译者: 毛丹青 人民文学出版社 2017 - 6
★八十年来首位摘得芥川奖的漫才艺人
又吉直树 小说处女作
★芥川文学奖史上销售排名第一小说
日本发售超过三百万册
★小说首发老牌文学杂志 《文学界》
刊行八十年来首次加印
★N E T F L I X 日 本 首 部 原 创 剧
名不经传的漫才艺人德永,在一次演出上结识了才华过 人的前辈神谷,并拜其为师。神谷要求德永为自己写一本传记。德永记录着神谷的言行,也互相探讨着漫才这门艺术。最终,两人走上了不同的道路,留下了笑与人生的思考。
2019年7月15日 已读
亿男 豆瓣
億男
6.9 (7 个评分) 作者: [日本] 川村元气 译者: 吕灵芝 新星出版社 2015 - 9
普通的图书馆员一男中了彩票,一夜暴富,他却不知该如何处置这笔巨款,特别是在网上搜索了其他中奖者的悲惨遭遇后,他担心自己也难逃厄运。
惶恐不安的一男苦苦追寻“金钱与幸福关系”的答案,为此拜访了自己多年不见的好友——大富翁九十九。大富翁令一男取出了全部奖金——三亿元,与他花天酒地了一晚,第二天便带着钱人间蒸发了。
为了追回巨款,一男拜访了大富翁那些奇怪的合伙伙伴。这位拥有亿万身家却不名一文的“亿男”踏上了惊险、奇妙、不可思议的冒险旅程……
读完此书后,突然感到口袋里的钱就像是怪物一样!——岩井俊二(导演)
果然金钱就像老朋友一样呢,虽然相处起来很辛苦,但我还是信赖它,并且为之奋斗下去。——松浦弥太郎(杂志主编)
我认为《亿男》除了是一本小说,还提出了崭新的货币论,比起经济职能,它更侧重于表现金钱在心理学方面的功能。 ——日本LIFENET保险公司社长 岩濑大辅
不怎么读书的我,竟然一口气读完本作。实然获得上亿元的男子会变成什么样呢?人与金钱关系的生动描述令我几度热泪盈眶,这是当上父母亲的人无法不为之动容的故事。读完书后,我狠狠地拥抱了女儿,为此还惹她生气了,这都是川村元气的责任啊。——大泉洋(演员)
2019年6月9日 已读
如何用kindle高效学习 豆瓣
4.6 (10 个评分) 作者: 直树桑 机械工业出版社 2019 - 3
数字时代高效学习指南,看Kindle如何变身移动学习神器。少数派、Tools指南、XMind、现象级英语、幕布、印象笔记、陈章鱼、使徒子、秋叶 、彭小六强烈推荐。
·如何选择适合自己的Kindle?
·如何快速找到Kindle优质读物?
·如何打造理想Kindle阅读环境?
·如何解锁Kindle的隐藏功能?
·如何让落灰的Kindle摇身变为移动学习神器?
·如何用Kindle/手机/电脑多端联动实现高效知识管理?
·如何用“Kindle读记流”实现阅读/写作无缝衔接?
·如何用Kindle生词本配合记忆神器AnKi高效学习英语?
没人比他更懂Kindle——
数字阅读研究者/Kindle资深用户/知识管理达人 直树桑
毫无保留地公开多年以来研究和使用Kindle的独家秘籍
2019年5月3日 已读
KVM虚拟化技术 豆瓣
作者: 任永杰 / 单海涛 2013 - 9
首本Linux KVM虚拟化技术专著,由Intel虚拟化技术部门资深虚拟化技术专家和国内KVM技术的先驱者撰写,权威性毋庸置疑。在具体内容上,本书不仅系统介绍了KVM虚拟机的功能、特性和使用方法,而且还深入地剖析了KVM虚拟机的核心技术和工作原理,对KVM做了全面而透彻的讲解。
全书一共9章:第1章介绍了云计算和虚拟化的概念,并对KVM等几种流行的虚拟化技术做了比较;第2章介绍了KVM的基本架构、QEMU的作用以及Intel的硬件虚拟化技术;第3章详细讲解了KVM依赖的硬件环境配置,编译和安装KVM和QEMU的步骤与方法,以及KVM客户机的启动;第4章深入讲解了KVM的基础功能,包括虚拟的CPU、内存、存储、网络、图形显示等的配置和基本原理,以及CPU和内存的过载使用;第5章讲解了KVM的高级功能,包括半虚拟化驱动virtio、设备直接分配VT-d、热插拔、动态迁移、嵌套虚拟化、KSM、透明大页、KVM安全技术、QEMU监控器、QEMU命令行参数以及从物理机或其他虚拟机迁移到KVM的方法;第6章介绍了管理KVM虚拟化的上层软件;第7章介绍了RHEL等所有流行的Linux发行版中的KVM虚拟化功能的使用;第8章首先介绍了虚拟化性能测试,然后详细介绍了对KVM虚拟化的CPU、内存、网络、磁盘I/O等重要组件进行性能测试的方法、工具和步骤;第9章介绍了Linux、KVM、QEMU等开源社区的情况,KVM、QEMU和KVM单元测试代码的基本结构,以及如何向QEMU/KVM开源社区贡献自己的代码和如何提交KVM相关的bug。
2019年5月3日 已读
DEV
奔跑吧Ansible 豆瓣
Ansible: Up and Running
作者: Lorin Hochstein 译者: 陈尔冬 电子工业出版社 2016 - 1
Ansible是近年用户量急速蹿升的开源配置管理工具。在Ansible之前,行业中已经有很多开源配置管理工具了,特别是鼎鼎大名的Puppet,堪称配置管理界的超级巨星。然而,Ansible依靠它的简单易用、"零依赖"及弱抽象还是获得了无数开发者和运维工程师的青睐。遗憾的是,由于Ansible还很年轻,除了官方文档外,其他相关的优秀文档可谓凤毛麟角。而《奔跑吧Ansible》恰恰就是为了缓解这一现状而写的。作者在《奔跑吧Ansible》中演示了如何使用Ansible在接近真实的生产环境进行管理的案例,这既演示了Ansible的强大功能,又能够帮助读者快速入门与上手,非常适合作为官方文档的扩展资料来阅读。
2019年4月18日 已读
DEV
实战Nginx 豆瓣
6.0 (5 个评分) 作者: 张宴 电子工业出版社 2010 - 2
Nginx (“engine x”) 是俄罗斯人Igor Sysoev编写的一款高性能HTTP 和反向代理服务器。Nginx选择了epoll和kqueue作为网络I/O模型,在高连接并发的情况下,Nginx是Apache服务器不错的替代品,它能够支持高达50 000个并发连接数的响应,运行稳定,且内存、CPU等系统资源消耗非常低。
本书主要分为4个部分,第1部分为基础篇,介绍了Nginx服务器的安装与配置方法;第2部分为进阶篇,重点介绍了Nginx的配置优化方法、Nginx与PHP/Ruby/Python/JSP/Perl/Memcached的结合配置方法、Nginx HTTP反向代理与负载均衡的配置与优化、Nginx模块开发等,最后还分析了新浪的开源软件项目──基于Nginx的NCache网页缓存系统;第3部分为实战篇,分析了Nginx在国内知名网站(如新浪播客、搜狐博客等)中的应用案例;第4部分为模块篇,对Nginx的基本模块和第三方模块进行了集中介绍。
本书是为对配置管理Nginx服务器感兴趣的读者准备的,适用于以前没有接触过Nginx,或者对Nginx有一些了解并希望能够进一步深入学习的专业系统工程师、个人网站站长及Linux/Unix从业人员。
2019年4月15日 已读
DEV
Java 9 Programming By Example 豆瓣
作者: Peter Verhas Packt Publishing 2017 - 4
Key Features
We bridge the gap between "learning" and "doing" by providing real-world examples that will improve your software developmentOur example-based approach will get you started quickly with software programming, get you up-to-speed with Java 9, and improve your Java skillsThis book will show you the best practices of Java coding and improve your productivity
Book Description
This book gets you started with essential software development easily and quickly, guiding you through Java's different facets. By adopting this approach, you can bridge the gap between learning and doing immediately. You will learn the new features of Java 9 quickly and experience a simple and powerful approach to software development. You will be able to use the Java runtime tools, understand the Java environment, and create Java programs.
We then cover more simple examples to build your foundation before diving to some complex data structure problems that will solidify your Java 9 skills. With a special focus on modularity and HTTP 2.0, this book will guide you to get employed as a top notch Java developer.
By the end of the book, you will have a firm foundation to continue your journey towards becoming a professional Java developer.
What you will learn
Compile, package and run a trivial program using a build management toolGet to know the principles of test-driven development and dependency managementSeparate the wiring of multiple modules from the application logic into an application using dependency injectionBenchmark Java execution using Java 9 microbenchmarkingSee the workings of the Spring framework and use Java annotations for the configurationMaster the scripting API built into the Java language and use the built-in JavaScript interpreterUnderstand static versus dynamic implementation of code and high-order reactive programming in Java
About the Author
Peter Verhas is a senior software engineer and software architect having electrical engineering and economics background from TU Budapest (MsC) and PTE Hungary (MBA), and also studied at TU Delft and TU Vienna. He created his first programs in 1979, and since then he has authored several open source programs. He has worked in several positions in the telecommunications and finance industries and was the CIO of the Hungarian start-up index.hu during its early days.
Peter works for EPAM Systems in Switzerland, participating in software development projects at various customer sites, and he supports talent acquisition by interviewing candidates, training programs for developers, and internal mentoring programs.
You can follow Peter on Twitter at @verhas, LinkedIn, and GitHub.
Table of Contents
Getting Started with Java 9The First Real Java Program - Sorting NamesOptimizing the Sort - Making Code ProfessionalMastermind - Creating a GameExtending the Game - Run Parallel, Run FasterMaking Our Game Professional - Do it as a WebappBuilding a Commercial Web Application Using RESTExtending Our E-Commerce ApplicationBuilding an Accounting Application Using Reactive ProgrammingFinalizing Java Knowledge to a Professional Level
2019年3月31日 已读
DEV