精华内容
下载资源
问答
  • 这些软件太强了,Windows必装!尤其程序员!

    万次阅读 多人点赞 2020-01-08 01:00:48
    Windows可谓是大多数人的生产力工具,集娱乐办公于一体,虽然在程序员这个群体中都说苹果是信仰,但是大部分不都是从Windows过来的,而且现在依然有很多的程序员用Windows。 所以,今天我就把我私藏的Windows必装的...

    Windows可谓是大多数人的生产力工具,集娱乐办公于一体,虽然在程序员这个群体中都说苹果是信仰,但是大部分不都是从Windows过来的,而且现在依然有很多的程序员用Windows。

    所以,今天我就把我私藏的Windows必装的软件分享给大家,如果有一个你没有用过甚至没有听过,那你就赚了😁,这可都是提升你幸福感的高效率生产力工具哦!

    走起!😎

    NO、1 ScreenToGif

    屏幕,摄像头和白板录像机集成编辑器

    不知道这个有多少人听说过,或者用过,反正我是爱了,没办法,它就是这么的优秀,软件下载下来之后打开是这样的:
    在这里插入图片描述
    怎么样,是不是心动了,我们使用下录像机:
    在这里插入图片描述
    看到了吧,我们从名字也能猜到,看这个:
    在这里插入图片描述
    啥也不说了,老铁们,赶紧下载体验去吧:https://www.screentogif.com/?l=zh_cn

    NO、2 Bandizip

    应该不少人用过吧,不过,也许就你不知道啊,哈哈😁,这是个解压缩软件,之前一直被人安利,在此之前我一直使用2345压缩,不知道有没有人跟我一样,不过试了这个之后,确实不错。

    觉得像是哥万能的解压缩软件啊,牛杯:

    在这里插入图片描述
    没有体验的也推荐使用一波的,不骗你的,赶紧试试去吧:https://cn.bandisoft.com/bandizip/

    NO、3 TranslucentTB

    好,我猜这货应该很少人知道吧,这是个啥呢?人家的功能很单一,就干一件事情,啥嘞?任务栏透明化,对,它就是干这个的,而且也只干这个。

    它是调用的Windows API,所以只能Windows用喽,就冲这点,使用Windows的还不赶快用起来,不然多不给面子啊,安装之后在你的状态栏有它的图标,右击:

    在这里插入图片描述
    任务栏透明化走起来😎:https://github.com/TranslucentTB/TranslucentTB

    NO、4 snipaste

    这个啊,使用Windows你可一定要安装啊,简直太好用了,我们平常非常频繁的一个需求就是截图了吧,在此之前我都是使用扣扣截图的,有了它,再也不爱扣扣了,因为它真的很强大,很好用

    在这里插入图片描述

    • F1 截图
    • F3 贴图

    简直爽的不要不要的😅:https://zh.snipaste.com/

    NO、5 Everything

    这个应该很多人都熟悉了,因为它也巨好用,因为大家都忍受不了Windows自己那急人的文件搜索吧😂,用上它,秒变光速,这个啊,人手一个,标配的,真滴,搜东西太方便了。

    你看人家的介绍:

    • 轻量安装文件
    • 干净简洁的用户界面
    • 快速文件索引
    • 快速搜索
    • 最小资源使用
    • 便于文件分享
    • 实时更新

    还不赶紧爱了:https://www.voidtools.com/zh-cn/

    NO、6 listary

    这个不知道多少人用过,反正我是把它和Everything作为搭档来的,一般就是使用Everything来搜索文件,但是Everything有个不方便的地方,比如我想打开网易云音乐:

    使用Everything
    在这里插入图片描述
    使用 listary
    在这里插入图片描述
    所以啊,我是非常喜欢用 listary来搜索应用,然后用Everything来搜索文件,我一直都是这么用的,推荐给你哦:https://www.listary.com/

    NO、7 typora

    现在都什么世纪啦,你怎么还能不会markdown呢?不行,这个必须会的,你要是不会,都不好意说自己是程序员吧,所以啊,别问了,不会的赶紧补课了,其实很简单的,语法就那么一丢丢,掌握基本的就ok了。

    会了markdown语法之后,自然要选一个好用的编辑器了,在Windows上啊,typora可是敢说第一没人敢说第二的存在啊,不过人家真的很好用,使用起来体验很爽,关键人家还完全免费。

    我先说了,即使以后它收费,我买了😎

    在这里插入图片描述
    强烈推荐哦:https://www.typora.io/

    NO、8 PicGo

    使用markdown一直有一个痛点,那就是图片的问题,不想word那样可以直接保存图片,markdown不行,如果插入图片,图片在本地会单独存放,以链接的形式插入在markdown中,如果本地图片丢失或者位置变了,那就不显示了。

    所以这里就需要一个图床,也就是把图片传上去,弄个链接,然后插入markdown中,那么图床不少,怎么传呢?使用这个工具,只要复制下图片,然后按个快捷键就可以直接将图片上传到你事先设定好的图床上,然后返回给你个链接,可以直接用。
    在这里插入图片描述
    真的很方便,markdown必备啊:https://molunerfinn.com/PicGo/

    NO、9 印象笔记

    不说了,必装,这可是我主要的知识管理工具啊,祝愿大象越来越好:

    1

    NO、10 potplayer

    这个曾经是我换mac后最为留恋的一个Windows上的软件,因为在mac上实在找不到能够与它媲美的播放器了,真的特别喜欢这个播放器,可惜没有mac版本的,只为Windows服务的啊,一定要安装啊,真的特别强大。

    你要仅仅以为它就是个播放器那你就错了,人家的功能强大着嘞,绝对神器级别的播放器,不服的你说一个来比比:

    在这里插入图片描述

    认准黑人,谨防假冒

    走起来:https://potplayer.daum.net/?lang=zh_CN

    NO、11 火绒

    这个之前也一直被人安利确实挺不错的,在如今很多杀毒软件都被叫流氓的情况下,火绒能被很多人推荐,说明它还是值得信赖的,大家使用Windows应该都有一个不好的体验:

    总是有烦人的各种弹窗

    使用火绒,帮你搞定

    在这里插入图片描述
    你还别说,真挺好用😎:https://www.huorong.cn/

    还不过瘾?放大招

    以上可都是我使用Windows经验收藏啊,还没看过瘾,没办法了,只能拿出必杀技了:

    在这里插入图片描述
    就这一个图片就感觉很酷,不信你去看看吧:https://love.appinn.com/

    觉得好的记得回来给我点赞哦!😎

    感谢阅读

    大学的时候选择了自学Java,工作了发现吃了计算机基础不好的亏,学历不行这是没办法的事,只能后天弥补,于是在编码之外开启了自己的逆袭之路,不断的学习Java核心知识,深入的研习计算机基础知识,所有心得全部书写成文,整理成有目录的PDF,持续原创,PDF在公众号持续更新,如果你也不甘平庸,那就与我一起在编码之外,不断成长吧!

    其实这里不仅有技术,更有那些技术之外的东西,比如,如何做一个精致的程序员,而不是“屌丝”,程序员本身就是高贵的一种存在啊,难道不是吗?

    非常欢迎你的加入,未来的日子,编码之外,有你有我,一起做一个人不傻,钱很多,活得久的快乐的程序员吧!

    回复关键字“PDF”,获取技术文章合集,已整理好,带有目录,欢迎一起交流技术!

    另外回复“庆哥”,看庆哥给你准备的惊喜大礼包,只给首次关注的你哦!

    任何问题,可以加庆哥微信:H653836923,另外,我有个交流群,我会***不定期在群里分享学习资源,不定时福利***,感兴趣的可以说下我邀请你!

    对了,如果你是个Java小白的话,也可以加我微信,我相信你在学习的过程中一定遇到不少问题,或许我可以帮助你,毕竟我也是过来人了!

    在这里插入图片描述

    感谢各位大大的阅读🥰

    展开全文
  • 1. 企图从软件层面解决硬件差异 微软这次将 Metro 界面与传统桌面糅合到一起,是想借助 PC 操作系统与平板操作系统的融合来统一桌面与移动端的体验,企图直接构建完整的生态系统。 看看微软怎么说的“Windows 8 ...
    1. 企图从软件层面解决硬件差异
    微软这次将 Metro 界面与传统桌面糅合到一起,是想借助 PC 操作系统与平板操作系统的融合来统一桌面与移动端的体验,企图直接构建完整的生态系统。
    看看微软怎么说的“Windows 8 希望将两种设备融为一体:笔记本电脑和平板电脑。这样您就只需携带一部手机和一部 Windows PC,而不是三台设备(手机、平板电脑和笔记本电脑)。电脑将同时成为您使用过的最好的平板电脑和笔记本电脑,如果需要,还将提供熟悉的 Windows 桌面功能。您可以选择携带一台平板电脑,或者选择一台笔记本电脑/双用型平板电脑,但您将无需同时将二者与手机一起携带。您无需再为选择要携带的设备而困扰。”

    再想想 Windows 8 在一定程度上还将与 Windows Phone 8 共享内核,无论是看起来还是听起来,都很美好。但整合手机,平板,PC 的不同类型的需求能完成吗?统一生态系统从来不是近几年才有的呼声。微软的这次想把平板电脑和 PC 变成一个设备的探索说简单点就是想从软件层面解决硬件上的差异,客观的说在一定程度上做的还是非常好,如贴靠多任运行等,但仅仅依靠软件层面上东西在目前是没有办法解决硬件上的差异的,平板和 PC 的差异不只是仅仅在触控模式上,更多硬件上的差异还有传感器、陀螺仪等。
    诚然未来的趋势势必将是各终端、设备的操作系统统一化, 但在当下,甚至短期的将来这一目标是无法实现的,不同设备使用最适配该设备特色的操作系统在目前是必须的,虽然统一体验很重要,但前提是能够完美无缝融合,而在目前还是无法达到的。
    微软一样,苹果也一直探索着操作系统的融合统一,但就像之前我们曾在 Windows 8 传统桌面的 Metro 化一文提到的那样,“同样是融合,苹果是以传统桌面为主界面,把 Launchpad 作为一个应用,而微软是以 Metro 界面为主界面,把传统桌面作为一个应用。”
    不得不说,微软的提前走上了未来的路,不敢猜测未来会怎样,乐观点微软实现 OS 大一统,悲观点在传统 PC 操作系统上继续维持现状,移动领域依旧追赶不上苹果和谷歌。
    展开全文
  • 从Windows角度看Mac OS X上的软件开发

    千次阅读 2014-12-03 09:54:06
    如果原来从事Windows软件开发,想跨足或转换至Mac OS X环境,需要知道那些东西?有什么知识技能可以快速运用在Mac OS X环境上的?这两个问题应该是Windows开发者进入Mac OS X环境最关心的问题。本文假设读者以往采用...

        如果原来从事Windows软件开发,想跨足或转换至Mac OS X环境,需要知道那些东西?有什么知识技能可以快速运用在Mac OS X环境上的?这两个问题应该是Windows开发者进入Mac OS X环境最关心的问题。本文假设读者以往采用微软的开发工具,并以C/C++/C#的任一种组合作为开发语言。

    大体说来,Windows和Mac OS X都是为桌面应用环境、图形用户接口(GUI)而设计的操作系统。虽然不同平台细节各有特色,但两者相近的抽象概念,其实远远多于相左之处。本文试图指出方向上明显的异同所在,而非详细列举各种细项差别。最后,我也将简短分享自己在开发跨平台软件时的一些技巧和心得。

    系统架构与开发环境的差异 

    用最简单的话来说,Mac OS X与Windows在架构与开发环境上最大的不同点在于:OS X是UNIX也不是UNIX;OS X主要开发工具Xcode使用GCC作为编译程序,与其他种类的UNIX相同;不过OS X也有独树一格的"bundle"软件包装格式这样的东西,成为它与其他操作系统不同之处。

    Windows和OS X都属于现代的操作系统,所以Windows在操作系统层级所提供的功能──执行文件与链接库加载、多任务与多线程、内存管理──在OS X上都找得到对等的API和作法。不过,相较于Windows在微软独力开发下,架构和API都维持着相对的一贯性(另一方面,也背负着各种历史遗迹和向下相容的包袱),Mac OS X则是底层源自NeXTSTEP的Mach微核心(现在称为XNU),而应用层(用准确的UNIX术语来说叫userland)来自FreeBSD 4。这件事情相当重要:OS X透过这样的架构,才拥有和一般Linux/FreeBSD相似的UNIX应用环境。有相当多Mac软件开发者喜欢在UNIX shell下工作,使用各种UNIX工具。在Windows上,必须加装Cygwin之类的环境才能办到。

    Apple几年前有则广告是「把其他牌子的UNIX送进/dev/null里」(用过UNIX的朋友应该不难体会其中的吹嘘意涵)。平心而论,OS X受益自UNIX环境之处不少。尤其,Apple使用了大量的open source工具。举例来说,Apple不像微软,没有自己的C语言编译工具,Apple用的是UNIX业界的标准──open source的GCC(其中当然有不少OS X的扩展功能就是)。虽然Apple有自己的开发环境Xcode,但是底层采用GCC这件事对开发者来说是相当重要的。同时,Apple的C/C++链接库用的也是GCC标准的stdc/stdc++。了解这个差异,在遇到与Microsoft C/C++ compiler不同的地方时,就更容易能找到解答的资源(这类型问题往往不限于OS X,其他UNIX平台也会发现)。

    但是Mac OS X并不完全是UNIX。它的GUI环境(Aqua)就完全不是一般Linux/FreeBSD所使用的X11。而在UNIX层之下的微核心也和其他UNIX不同。接下来这一点很重要:OS X虽然有和Windows .EXE和.DLL相对应的文件(OS X跟其他UNIX一样,可执行文件一般不加扩展名,UNIX系的动态加载链接库则冠以.dylib),但更重要的架构差异是bundle。

    Bundle概念承袭自NeXTSTEP。简单来说,就是由操作系统提供一种类似对象封装的文件包裹。OS X上最常见的bundle要属.app结尾的应用程序了。虽然.app外观上是个文件,在UNIX shell下看就能发现它其实是个目录,内含各种metadata(通常至少会有一个名为Info.plist的数据文件)、可执行文件、动态链接模块、各种资源等。除了.app外,OS X的各种框架档(以.framework结尾,是一种同时包含头文件及链接库的包装)、应用程序的外挂模块(通常以.bundle结尾)等等,都是以bundle形式呈现的。了解这个差异,才能了解为什么OS X上很少有程序需要额外的安装程序,也鲜少听说有所谓的"DLL hell"(因共享链接库版本不兼容造成的困扰)。

    项目 Windows Mac OS X
    操作系统最近桌面版本 Windows Vista Mac OS X 10.5 Leopard
    操作系统核心 NT Kernel XNU
    CLI Shell环境 CMD.EXE UNIX shell (bash/tcsh/etc., 可使用Terminal.app一类的终端机软件进入)
    GUI (Shell) 环境 Windows Explorer Aqua (Finder)
    程序二进制文件格式 Portable Executable (PE): .EXE, .DLL Mach-O "universal" binary (可执行文件通常不带附加名,DLL结尾为.dylib)
    用来辨认软件组件的方式 GUID bundle identifier (Java式的id,例如com.apple.TextEdit)
    厂商提供或贩卖的开发环境 Microsoft Visual Studio Xcode
    可视化的GUI制作工具 Visual Studio内建的WinForm designer Interface Builder
    C编译程序 Microsoft C Compiler GCC

    表一:Windows与Mac OS X在架构上的对照

    开发语言与API;Objecitve-C, Core API, Carbon, Cocoa 

    如果使用微软工具来开发Windows软件,就一定会碰到Platform SDK,MFC或者.Net平台,同时,也相对应到C、C++、C#和其他.Net平台所提供的语言(这种区分并不是绝对的,仅仅是为了方便接下来的模拟所做的简化)。在OS X上,Apple则是鼓励大家尽量采用Objective-C作为开发语言,并且熟悉Cocoa。

    接下来的问题既尴尬又麻烦。很多人会问:我们是否非学Objective-C不可?另外一个常见的问题是:Apple不是也有名叫Carbon的C API吗?(延伸出来的问题则是:可不可以用C++开发Mac程序?)。

    简单的答案(同时一定程度上也代表Apple的态度)是:要用Objective-C才能完全发挥OS X图形应用环境的长处,而Cocoa这个用Objective-C写成的API framework就是最佳的施力点。

    复杂的答案则是这样:

    OS X的本体,也就是所有非UNIX的部份,并不像Windows一开始就(几乎)全以C写成的。因此OS X没有所谓"Win32 API"这么纯粹的东西。OS X核心的、非GUI的服务和链接库,有时称为"Core API"。Core API大部分以C写成,并且多半奠基于CoreFoundation这套链接库之上。CoreFoundation提供了一贯的内存管理模式(CFRetain, CFRelease)、基础的数据型别(字符串、数组、字典)、property list文件管理、文件、网络存取等等。CoreFoundation使用上跟Win32 API有点相似,都透过存取handle的方式来达到某种近似「用C语言操作对象」的效果。但CoreFoundation最大的不同在于它还有reference counting的内存管理模式,大幅简化了内存管理的复杂性。

    至于Carbon,严格说来,是Mac OS X在发行之初,为了维持与Mac OS 9兼容,才提供一套以C写成的GUI工具集,主要包括所有的GUI组件(Apple 称为 HIToolbox ,HI 意思是 Human Interface)以及所有OS X之前的API(QuickDraw等等)。随着OS X 10.5的推出,Apple渐渐舍弃了旧式的API ,鼓励大家使用Objective-C写成的Cocoa来开发程序。Carbon现在的意义等于就是HIToolbox,也就是OS X GUI 的C API。

    但是,Apple在2007年夏天做了重大的宣布;Carbon不会有64-bit的版本。也就是说这一套C API是「没有未来」的。这意味着所有使用Carbon写成的软件──Microsoft Office、Adobe Photoshop都不可能顺利过渡到64-bit。至于像QT这一类跨平台的GUI kit也势必要顺应这项改变。

    其实Objective-C并不难学。由C转换到C++/C#时需要学习很多新观念、新用语,但Objective-C大体上只是在C语言上加上一层薄薄的、动态的面向对象层。Cocoa则是相当容易上手的API。透过Cocoa就可以用面向对象的方式存取OS X八成上的系统服务(其余两成可以用C来呼叫)。Objective-C可以跟C完全混用。同时Apple也提供了所谓的"Objective-C++",可以在C++程序中呼叫Objective-C程序,或者在Objective-C里撰写C++程序代码。Apple自家的浏览器Safari就有不少核心的程序代码(WebKit)使用了Objective-C++来撰写。 

    项目 Windows Mac OS X
    主要开发语言 C/C++/C#(及其他.Net支持的语言,如C++/CLI) Objective-C/Objective-C++/C/C++
    操作系统服务 Win32 API 系统服务多半可从POSIX layer用stdc/stdc++取用
    系统核心服务 Win32 API CoreFoundation/CoreServices
    绘图与GUI Win32 (GDI32, USER32) Quartz (C API)/HIToolBox (Carbon)/AppKit (Cocoa)
    面向对象的API .NET Framework/MFC Cocoa
    面向对象的GUI及绘图系统 WPF/GDI (with MFC) AppKit (Cocoa)以及Cocoa Graphics
    桌面应用程序的数据库方案 ODBC/ADO.Net CoreData
    基础绘图系统使用的单位 Pixel (GDI) Point (Quartz)
    默认的屏幕分辨率 96 DPI 72 DPI

    表二:开发语言与API的对照

    图形作业环境的差异:绘图系统 

    大家对OS X最主要的印象,想必还是它的图形作业环境。GUI的确是OS X与Windows差异最多的地方。

    在Windows环境里,传统上Win32 API同时包括了绘图(所谓的GDI/GDI+)和GUI组件(窗口、对话盒、按钮等等)的操作。到了.Net 3.0有所谓的WPF (Windows Presentation Foundation)。严格说来所有Windows上的概念和组件,都可以在OS X上找到相对应的作法。但是在架构上OS X确实和Windows有相当大的差异。

    OS X的绘图系统核心是Quartz。Quartz的绘图基础概念是路径(path),而不是像素(pixel)。惊人的事实是:Quartz是一套PDF绘图系统。所有Quartz能绘制的对象都能轻易转换为PDF文件。至于在图像处理上,Quartz提供了一套完整的合成模型(compositing model)。简单地说,Quartz赋予了Mac OS X极为优异的绘图能力。从一些细节就可以看出Quartz在视觉上的细致度:例如,OS X在显示字型时的去锯齿(anti-aliasing)处理就要比Windows来得细腻,在点阵影像的缩放上效果也往往比Windows好。OS X的应用程序可以轻易做出各种透明度的图层、以及为图形对象加上阴影、或者绘制不规则形状(但这并不代表你应该只是为了为了吹嘘而滥用这些功能,我们马上会提到用户体验这件事)。倒是有个细节应该马上一提,那就是Quartz的默认分辨率是72 DPI,所使用的单位是点(point),这跟PDF绘图系统是一致的,和Windows预设为96 DPI、以像素为单位的点阵式绘图系统很不一样。这在一开始可能很困扰人。因为在OS X上,不改变屏幕设定的情况下,12 pt的字,就真的会被会绘制成12 px(而在Windows上,12 pt却是16 px)。同时,Quartz默认的坐标系统跟数学上的习惯相同,也就是(0, 0)坐标起点是位于左下方,而不是一般计算机绘图使用的左上方(当然,Quartz有各种坐标变换功能,因此当然还是可以把(0, 0)设定为左上方的)。

    看似复杂,然而,当你开始想输出PDF(打印作业大幅简化)或进行精细的绘图工作时,慢慢就会发现Quartz这样设计的直观了。

    另外,Quartz的基础API是以C写成的,所有对象操作方式都跟CoreFoundation一样(从Quartz建立的对象都是用reference counting的方式在管理内存,同时也都可以用CFRelease来释放)。不过,Cocoa也提供了绝大多数的API对应。使用Objective-C来操作绘图对象会更轻松些。

    在Quartz之上,或者与Quartz并行的,还有Apple的各种图形和媒体相关的子系统。诸如可以快速制作动画的Quartz Composer、新一代文字输出编排系统CoreText、应用层的2D动画系统CoreAnimation,以及Apple的招牌多媒体架构QuickTime,还有业界标准的OpenGL,这些构成了Mac OS X在视觉及媒体经验上的核心。

    图形作业环境的差异:GUI,以及,用户体验 

    Windows上,尤其是Win32 API里面,绝大多数关于GUI的概念和技能,都可以直接转换到OS X上。OS X的GUI同样是采用事件驱动模型(event-driven model)来设计的,每个GUI应用程序同样都有所谓的run loop(或称event loop/message loop)。两者甚至在某些系统限制上也雷同:例如,.Net跟Cocoa都不鼓励或甚至禁止程序在主线程以外的地方创建或操作GUI对象。

    尽管如此,GUI是造就Mac OS X在外观上与其他平台不同的最大要素。与之相伴的是OS X对于用户体验近乎执着的追求。

    OS X在GUI上并没有一个特别的子系统。通常我们用接触到的API来区分。好比说如果用的是Carbon我们会称为HIToolkit,如果用的是Cocoa则会说是AppKit(Cocoa主要是由非GUI的Foundation──不要和CoreFoudation搞混了──以及提供GUI组件的AppKit所组成的)。Apple的开发工具中并没有类似Visual Basic一类把接口画完、在组件上点两下鼠标,把程序填进去就完成应用程序的工具或流程。最接近的是Interface Builder (IB)这套工具。IB做出来的.nib文件其实就是封存好的GUI对象,生成之后再回Xcode将必要的连结关系拉完,程序代码填上(通常量不会很多)就完成程序了。IB会是Xcode以外,OS X开发者最常用的工具。

    OS X提供的GUI组件特色为细腻、一致、直观。这并不代表OS X的GUI无法做复杂的设定和客制化。但是相较之下,OS X的应用程序更倾向于善用或组合现有的视觉元素,而较少自创新的custom control。这一点和Windows上,尤其是小型工具程序,喜欢一种程序就创造一种视觉风格,或是大量提供使用者可更换的skin,有着相当大的文化差异。虽然Apple自家的软件跟微软相似,喜欢提前使用下一个版本才出现的视觉风格或元素,有时让开发者觉得难以捉摸,但大体上遵守Apple自家的HIG (Human Interface Guideline)还是常态。

    我们提到了文化差异;OS X在视觉上的细腻,以及对用户体验的追求,造就了一种高要求的文化。这可以说是一种正向循环。我们或许很少听说哪个Windows开发者会为了icon向左偏了1 pixel而大改特改,或是要求自己的软件要在视觉及操作上符合哪个规范的一致性。但OS X的开发者真的会谈论并严肃看待这件事情(著名的icon设计商IconFactory以及独立软件商Panic是著名的两个代表),同样的也有相当多OS X使用者以同样严苛的标准看待他们使用的软件,甚至可能写信告诉你,指出你的软件在用户体验或视觉设计上的缺陷(笔者就曾经收到使用者来信,指出笔者的一个软件在pull-down menu中使用的icon「语意」不合乎用户对该种GUI组件的期待)。又好比说,从OS X 10.5 Leopard开始,icon最大可以大到512x512,Apple也强烈建议开发者要准备这么大的尺寸(除了原有的16x16、32x32、128x128之外)。这当然无形中提高了开发的挑战。Windows在XP以前仅支持16x16、32x32、48x48,直到Vista才开始加大到64x64和256x256。

    另一个与GUI不直接相关,但却影响用户体验的,是OS X的本地化(localization)系统。这一点也是和Windows不同的地方。OS X因为有bundle的设计,因此能让一个应用程序同时包装各种不同语系的资源文件,同时开发多语系程序在OS X上也相对容易(通常是以提供各种不同版本的.nib bundle放进应用程序bundle中Content/Resources/底下以语系区域来区分的子目录中就完成了。Windows程序设计一向以"resource file"概念来管理icon及本地化等「外部」资源,名称相似,开发方式却不那么一贯而直观;另外,OS X的语系是可以按照顺序fallback的,例如要是繁体中文语系档找不到,而用户在语言设定中将简体中文设定在繁体中文的后头,那么OS X便会尝试套用简体中文语系档),结果是OS X使用者对本地化同样有着高标准与高期待。另一方面,笔者也建议大家,除非软件确定只有中文用户使用,不然一开始先以英文界面开发,再加上中文的本地化资源,以长期来说是值得(甚至是必要)的投资。

    一些较难归类但同样重要的差别 

    Mac OS X跟Windows在软件开发作法上的差异还有很多,上述只就最大的方向差异阐释。有些较细微但值得一提的差别,我们也在这里简单说明。

    首先,OS X跟Windows一样,内部字符串编码以Unicode为准。但在操作系统不同的层级,使用方式并不相同。Windows的Unicode layer很一致地使用了UTF-16作为编码,并偏好使用BOM辅助判别。OS X的文件系统使用UTF-8,而CoreFoundation及Cocoa则用UTF-16。如果使用Cocoa自己的serialization机制,Cocoa会正确储存和还原UTF-16的位顺序。不过,笔者自己建议,尽可能使用UTF-8作为各种交换时的编码(相对于Windows对于UTF-8的支持不够干脆简明,Cocoa自己就提供了像stringWithUTF8String以及UTF8String两种NSString的method,方便在native string与UTF-8间的游走)。

    其次,相对于Windows使用registry来管理应用程序设定,Mac OS X使用的是一种叫做property list(文件扩展名为.plist,简称plist)的XML文件。Plist可以直接变成CoreFoundation及Cocoa的各种容器对象,也可以将后者轻易地serialize成plist。因此OS X上的应用程序大量使用plist作为配置文件的格式,甚至作为数据单元格式。将设定用个别文件储存也减少了Windows集中管理registry所带来的各种弊病。

    Mac OS X并不使用COM (Component Object Model)来作为面向对象的进程间通信(IPC; interprocess communication)的机制。因为用Cocoa写成的程序,可以透过Objective-C Distributed Object (DO)这个强大机制来达成IPC的任务。除此之外,因为bundle架构,OS X软件要设计外挂模块架构也相当容易。OS X有相当多支持外挂的应用程序,应归功于这种开发上的便利度。

    OS X应用程序能够利用所有OS X在UNIX环境上所提供的功能。同时OS X一安装好就已经帮你准备好了大量的open source链接库,例如可用来制作密码密钥认证的OpenSSL、负责解压缩的libz、内嵌式数据库引擎SQLite等等。这些都是加速开发的好帮手。

    最后要提的是,正因为OS X的文化与Windows有许多不同处,笔者建议跨足OS X的开发者应该要尽可能贴近甚至配合OS X的习惯。举例来说,大多数OS X应用程序都不需要安装程序,只需要直接将软件拷贝到想要存放的目录(通常是/Applications)即可。而解安装也就直接删除该.app bundle就解决了。在Windows上就没那么容易了(特别是有相当多组件依存关系的软件)。这些都是开发上需要注意的地方,但是开发者多付出一份心力,使用者就会多一份便利,终究会得到用户肯定的。

    项目  Windows  Mac OS X 
    系统内部编码 Unicode (UTF-16) Unicode (文件系统使用 UTF-8, 系统API一般使用 CFString/NSString, 内部使用UTF-16)
    语系处理 区分Codepage 不区分Codepage
    应用程序的设定管理方式 Windows registry Property list files
    IPC的几种方式 COM/Windows RPC Objective-C Distributed Object/Apple Event/BSD Socket
    脚本语言的支持 VBScript/JScript/CScript/DOS Batch script AppleScript/Perl/Ruby/Python/shell script 

    表三:一些重要的系统特性(摘录)

    项目 Windows (.NET) Mac OS X (Cocoa)
    字符串处理 System.String NSString 
    数据结构与容器 System.Collections NSArray/NSDictionary/etc. 
    HTTP网络存取 System.Net System.Net,NSURLConnection
    XML解译 System.XML NSXMLDocument etc.

    表四:几个代表性的.NET namespace/class在Cocoa中的对应class

    跨平台的建议 

    最后简短分享一些跨平台软件开发所可能遇到的问题。

    要同时在Windows和Mac上开发,有两种可能的思维方式。一种是追求真正的"write once, run everywhere"。此时开发的选择,可能是采用Java平台,Adobe的AIR,抑或使用C++搭配像QT这样的跨平台链接库。这三种主流方案各有千秋,但在视觉和用户体验上往往皆无法与原生(native)的Mac应用程序相比。

    因此,另一个方向则是体认到,要保有Windows及Mac各自平台的特长,就必须割舍GUI跨平台的可能性。也就是说,GUI是最无法移植到其他平台的部分。我们能做的是将共通的逻辑部分独立出来,然后开发两套前端接口(frontend)。若以在Windows及Mac上皆能使用为前提,共通逻辑开发语言的选择就很少了,不是C就是C++。所幸Windows和Mac上具有平台特色的语言,要和C++结合,也不是那么困难的事(在.Net上是透过C++/CLI,在Mac上是透过Objective-C++这两种扩展的语言)。

    不过,在开发共享部分的时候,最容易碰到的问题,恐怕还是要如何省下力气去做例如解译XML文件、存取网络这一类不是GUI的工作。这类工作的麻烦在于,Windows和Mac都各自提供了相当便利、但也绝对和平台相依的链接库(例如.Net的System.Xml,Cocoa的NSXMLDocument)。在这种情况下,我们也大体有两种选择:不是全部采用跨平台的链接库(例如使用expat来解译XML),就是善用面向对象的抽象化以及Abstract Factory这样的设计模式(design pattern),让程序逻辑呼叫抽象的接口,然后在于各自平台的版本中藉由呼叫平台相依的API来实现这些对象。

    结论 

    本文简要地讨论了Windows及Mac OS X在操作系统架构、开发环境、API、图形环境等环节上的相近处与不同的地方,也简单提出了跨平台应用程序开发的两种策略。事实上在两种平台上开发所需要了解的概念跟技能没有太大的不同,两种平台在性能上的差异也不大,但是在实现细节、视觉表现与用户体验上,OS X有自身独特的风格与文化。OS X软件开发社群常常说要"be a good Mac citizen"意思也就在此。了解这些差异和独特性是撰写合宜的OS X软件的第一步。

    展开全文
  • Windows10中好用的软件推荐

    万次阅读 2018-03-10 21:44:35
    本文记录一下本人Windows系统中使用的工具软件。常用的 Office之类在此就不提及。 首先看一下本人的电脑桌面: 桌面上没有任何的文件夹和菜单,任务栏设置成自动隐藏,那桌面就只显示桌面壁纸了。毕竟本人处女...

    已从 Windows 迁为 Mac !!!So ~~~


    本文记录一下本人Windows系统中使用的工具软件。常用的 Office之类在此就不提及。

    首先看一下本人的电脑桌面:
    这里写图片描述

    桌面上没有任何的文件夹和菜单,任务栏设置成自动隐藏,那桌面就只显示桌面壁纸了。毕竟本人处女座喜欢简单干净的环境。

    桌面美化类

    windows主题的定制性比Linux差多了,所以只从以下方面进行了简单的美化设置。

    字体

    系统默认的微软雅黑字体实在是看不习惯,找到了一款字体美化软件MacType,能够使用几款好看的字体,本人使用的是IOS上默认字体:

    这里写图片描述

    壁纸

    每天一样的壁纸确实看的有点审美疲劳了,在应用商店找了一个每天自动更新壁纸的UWP应用-每日必应,每天将桌面壁纸改为必应搜索的背景图片,个人感觉质量蛮好的。

    这里写图片描述

    社交类

    此处应有国内常用的两大霸主:

    • QQ
    • 微信

    本人觉得Skype也不错,但是朋友很少人用总不能自己和自己交流吧,遂弃之。。。

    系统工具类

    图片处理工具

    • Photoshop

      第一大当然是强悍的无所不能P的Photoshop,功能虽多但是软件复杂需要一定的学习成本,平常简单的图片处理当然用不上这把“牛刀”。

    • 光影魔术手

      国内迅雷旗下的一款图片处理工具,软件比较小能够满足平常的图片编辑功能。

    系统下载工具

    • 迅雷

      迅雷下载速度还行但是软件广告太多。。。

    • 百度云

      百度云下载限速,会员又要票子。各种破解限速方法尝试了但是感觉提速并不快。

    对于下载工具如果哪个大牛有比较好的推荐请在评论区留言,本人感激涕零。

    影音播放工具

    • PotPlayer

      一款小而强悍的电影播放工具,牛b之处请自行百度。

    • 网易云音乐

      虽然因为版权问题好多歌听不了但是用习惯了就不换了。

    浏览器工具

    • Google Chrome

      功能最强悍最好用的浏览器没有之一。插件丰富好用,下面给出本人常用的插件,具体功能请自行Google搜索:

      • Adblock Plus
      • Infinity
      • LastPass
      • Local CDN
      • Proxy SwitchyOmega
      • Stylish
      • VIP_KANKAN
      • FireShot
      • 视频广告终结者
    • IE

      某些网站还是需要IE浏览器打开的。一般不用除了特殊情况。

    文件搜索工具

    • Everything

      搜索速度很快但是界面不是那么好看。

    • Listary

      快捷键很好用搜索功能也很强,现在电脑用的这个。

    笔记工具

    • 有道云笔记

      本人学生党用的是有道云笔记,毕竟免费而且功能能够满足日常的需求。

    • 为知笔记

    • 印象笔记

    开发类

    一般情况下除了程序员很少人会用到以下工具,就简单列举一下:

    • Pycharm
    • Eclipse
    • CodeBlocks
    • Sublime Text 3
    • Gephi
    • Typora
    • Git

    如果路过的大牛有好用的软件推荐,请在评论区留言,本人不胜感激。

    展开全文
  • 从Windows的角度看Mac OS X软件开发

    千次阅读 2014-06-17 16:39:12
    从Windows的角度看Mac OS X上的软件开发兼谈跨平台开发的一些可行方向   如果原来从事Windows软件开发,想跨足或转换至Mac OS X环境,需要知道那些东西?有什么知识技能可以快速运用在Mac OS X...
  • 对于小白的我,今天一个大神处得知windows系统可以用scoop进行软件管理,而且还是在windows-PowerShell命令行进行操作,对于喜欢命令符操作的人来说就是福音,网络上有很多类似的文章,在这里就不做过多的赘述,...
  • Mac电脑一直以高性能、高价格领先于其他的Windows系统,因此很多用户从Windows转战Mac,但是因为之前用windows系统已经习惯了,所以很多用户想要在mac上安装Windows系统,又不想使用虚拟机,那么,这个问题要怎么...
  • Qt实现软件从Windows到Linux跨平台

    万次阅读 2014-07-14 19:36:39
    Qt,面向C++图形界面的一种架构,对于GUI有很好的扩展,通过近一个月的学习和摸索,终于实现了Windows下的软件代码移植到Linux,实现了软件的跨平台。这其中走了不少弯路,遇到很多问题,主要是通过Internet找资料,...
  • Windows 软件推荐2020

    2020-03-27 17:22:12
    Windows可谓是大多数人的生产力工具,集娱乐办公于一体,虽然在程序员这个群体中都说苹果是信仰,但是大部分不都是从Windows过来的,而且现在依然有很多的程序员用Windows。 所以,今天我就把我私藏的Windows必装的...
  • windows下方便的软件安装方法:是添加删除程序。ubuntu也有类似的添加删除程序,应用程序->添加删除。是通过更新源选择软件安装。还有新立得软件包管理器在“系统”-〉“系统管理”下面。 下面介绍命令方式安装:...
  • windows 自带的Windows Defender杀毒软件,很多破解软件直接会被删除或者无法运行的,都不知道哪里恢复加入白名单的,所以非常不符合中国国情。而且怎么关闭Windows Defender这个杀毒软件呢,今天行客给大家推荐一...
  • 如何已经安装并在使用中的windows等微软的软件中提取序列号有时,我们需要重新安装系统时,常常找不到当初安装时的序列号,因此:如何已经安装并在使用中的windows XPWINDOWS 2003 SERVER WINDOWS 2008 ...
  • 启动的软件都是从Windows使用字体,但是系统和winne一般都不带那么全。我们就需要从windows里面拷贝字体过来,省事啊,懒得找哪个字体了。 例如, Windows的C:\盘被挂载在/windows: # ln -s /data/Windows/Fonts /usr...
  • 基于 Windows软件逆向破解入门篇

    千次阅读 2018-11-26 13:59:52
    软件逆向工程(Software Reverse Engineering)又称软件反向工程,是指可运行的程序系统出发,运用解密、反汇编、系统分析、程序理解等多种计算机技术,对软件的结构、流程、算法、代码等进行逆向拆解和分析,推导...
  • 亲手从Windows 7 登录到 Mac电脑,本软件适合局域网使用,比如果公司多网段内网,学校内网等。 方法,先在Win 7安装 tightvnc-2.0.4-setup.exe 然后在Mac 系统偏好设置 里的 共享 勾”屏幕共享“ 并选择“所有...
  • 本篇讲讲Windows下面的C函数库与Linux下面的C函数库有哪些区别 1、_access与access 在项目中,少不免的需要读写文件,但读写文件之前,总得要判断一下文件是否已经存在,在Windows下面,判断文件是否存在的函数是_...
  • 首先,先讲讲Windows平台和Linux的开发环境的区别。 首先说明,开发的编程语言是C++,与CTP的接口开发语言一致,不需要另外封装接口,拿来便可以用。 在Windows平台下进行C++项目开发,可能使用VS的人更多一点,而且...
  • 从windows到*nix(一) 软件的安装

    万次阅读 热门讨论 2009-12-21 16:55:00
    注:本系列文章讲述对程序员而言windows和类unix操作系统(*nix)在使用上的异同,并以*nix为主。... windows下安装软件的一般步骤是解压缩,找到setup.exe,点击它,然后next,选安装目录,next,选可选组件,n
  • Windows 10 必备软件

    2017-06-29 11:08:12
    【下载】迅雷极速版:官方已经把极速版下架了,不过还可以这里下载,希望不要失效。 http://vip.xunlei.com/fast_xl/story.html【截图】Snipaste:一款非常好用的截图软件,不过跟词典软件的屏幕取词会冲突,需要...
  • 借重新装系统之际,一篇文章带你玩透Windows 10系统安装到软件选择 下载链接 Windows 10 官方原盘 个人建议用官方版原盘,可以保证里面无毒无木马,也不会给你加一大堆乱七八糟的软件。贴上微软官方商店的地...
  • windows上建立linux(ubuntu16.04)双系统(BCD软件从电脑硬盘引导)
  • Ubuntu中自带了很多日常工具软件,但刚刚切换到Linux下还是有很多不方便,那当然要添加一些顺手的工具了。1. 浏览器:自带的FireFox就很不错啦!2. 输入法:中文输入,还是安装搜狗吧,毕竟用了这么多年,习惯了: ...
  • 很多人用英文操作系统,原因有很多,不管什么原因,都有可能碰到一个问题... 解决方案:我不确定哪个版本的windows开始支持的,因为我从windows7才开始用英文版,windows7和8都是支持的。设置方法:Control Panel\Cl
  • 如何打包发布基于Qt4 Windows软件

    千次阅读 2011-03-12 09:04:00
    <br /> 先从Windows平台开始。 Windows平台下的软件发布最主要的需求是想办法找到在你的发布中应该包含哪些必须的文件, 同时要保证应用程序运行时能正确找到这些文件, 发布基于Qt的软件也是同样的需求...
  • https://blog.csdn.net/wangchuansnnu/article/details/37767165?utm_source=blogxgwz4 转载于:https://www.cnblogs.com/cjh1122/p/11081231.html
  • 9款免费的Windows远程协助软件

    万次阅读 2019-08-16 01:40:02
    你可以通过其他的远程协助软件从互联网中得到网友的帮助。这里我们列出九款免费的Windows远程协助软件。 1。 Team Viewer:TeamViewer是一个既简单又友好的远程协助工具。您可以通过它远程控制对方的桌面,在线帮助...
  • Windows CE 软件开发入门

    千次阅读 2007-03-29 16:23:00
    MicrosoftWindows CE是紧凑的、高效的和可升级的操作系统,它被广泛的应用在各种嵌入式式的产品中,手持电脑到专门的工业控制器和消费用电子产品中。Windows CE已经通过了其自身的能力证明:它能够满足32位...
  • windows 10自带的Windows Defender杀毒软件,很多破解软件直接会被删除或者无法运行的,都不知道哪里恢复加入白名单的,所以非常不符合中国国情。而且怎么关闭Windows Defender这个杀毒软件呢,今天行客教大家一个...
  • 第一次拖着行李入京找活,至今已工作若干年了。这些年一直追逐自己的梦想,跑过三个城市,换了三份工作,认识了很多业内的朋友。和朋友们闲聊时,发现很多人都已经不再做客户端软件了。有的转去做管理,有的转去做...
  • Microsoft 恶意软件删除工具与防病毒产品有何差异 Microsoft 恶意软件删除工具不能取代防病毒产品。严格地讲,该工具是感染后的... 该工具已经受感染的计算机中删除恶意软件。防病毒产品能够阻止恶意软件在计算...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 13,208
精华内容 5,283
关键字:

windows从软件