扩展_扩展函数 - CSDN
  • 2019最好用的谷歌扩展工具

    千次阅读 2019-04-25 16:08:46
    Extensions Manager 安装地址: ... 这是一款很方便的扩展应用和主题管理器,它可以快速轻松地启用、禁用、卸载你的扩展应用,显示你正在操作的扩展应用,并且不处理私人信...

    Extensions Manager

    安装地址:

    https://chrome.google.com/webstore/detail/extensions-manager-aka-sw/lpleipinonnoibneeejgjnoeekmbopbc?hl=en

    这是一款很方便的扩展应用和主题管理器,它可以快速轻松地启用、禁用、卸载你的扩展应用,显示你正在操作的扩展应用,并且不处理私人信息和敏感信息,可以让你的浏览器更加清楚有条理。

    HTTPS Everywhere

    安装地址:

    https://chrome.google.com/webstore/detail/https-everywhere/gcbommkclmclpchllfjekcdonpmejbdp?hl=en

    首先来和你简单介绍下什么是HTTPS。

    “HTTPS”是一种网站协议,可以确保网站在你访问之前是安全的。与之对应的是网站的开头为:HTTP

    所以存在两种区别,即 “HTTPS 和 HTTP”

    简单来讲,访问Https的网站其实是更安全的,而http其实更容易遭受攻击,也意味着这样的网站更存在风险,比如说我的博客,大家可以观察一下,我的博客的链接是:

    很多人会问我,为什么我不去做https?

    我的回答是,因为我的博客是免费给大家看,又不交易,又不下单,所以我懒得搞这个https。

    所以看到这里,你就明白了,因为很多互联网的小白,很多时候察觉不出网站是否被钓鱼,自己判别不出来,那么就可以利用HTTPS Everywhere。

    HTTPS Everywhere在许多站点上自动使用HTTPS 安全性,它会将访问网站的请求重写为Chrome版本,这样就可以确保浏览器生成的是该网站的安全版本,保护你免受各种形式的监视和账户劫持、某些形式的审查。

    当我在我的网站上开启https的时候。

     

    你看我的博客就变成了 https了,这样你就可以安全访问了。

    所以你看是不是非常的使用方便呢?

    对了,类似的工具,还有一款叫,J2Team Security 也非常的好用,可以很好的保护你的网站的隐私。

    Click&Clean

    安装地址

    https://chrome.google.com/webstore/detail/clickclean/ghgabhipcejejjmhhchfonmamedcbeod?hl=en

    这款软件是干什么用的呢?

    如果你的工作经常要搜索、下载资料,那你需要这样一款快速清除历史缓存、提高运行速度的应用。

    其实我们也可以直接在浏览器上清空缓存,但是需要点击两个步骤,比较麻烦,但是通过这个插件,直接一键点击,使用起来非常的方便。

    所以只需轻松点击Click&Clean按钮,就可以清除缓存、网址搜索、网站Cookie和下载记录。

    另外这款工具,它还可以扫描计算机中的病毒,并清理硬盘驱动中未使用的应用软件,帮你提升网速。

    Bitly

    安装地址

    https://chrome.google.com/webstore/detail/bitly-unleash-the-power-o/iabeihobmhlgpkcgjiloemdbofjbdcic

    bitly相信很多人都已经用到过!

    就是一款缩短网址,可以把长链接变成短链接,这样你在外面推广的时候,会让人觉得比较清爽,可靠。

    太长的链接,给人的感觉很不专业,又影响了人的点击欲望,因此就会经常用到缩短工具。该用具就是生成短连接的,玩过新浪微博的人都知道!

    BuzzSumo

    安装地址

    https://chrome.google.com/webstore/detail/buzzsumo/gedpbnanjmblcmlfhgfficjnglidndfo

    这个工具让你能够很简单地查看内容的参与度。还可以用它执行竞争对手分析,让你快速的知道,竞争对手有哪些好的文章是被分享的最多的,哪些文章是给他们带去最大的流量。

    那么你就可以模仿他们的文章,知道写什么样的话题,素材最有用,这是一个非常好的对于内容挖掘的好方法

    Pinterest

    安装地址

    https://chrome.google.com/webstore/detail/pinterest-save-button/gpdjojdkbbmdfjfahjcgigfpmkopogic

    这是一款让你无需离开你正在进行的操作,轻松将内容保存到Pinterest板上的一款应用。

    一句话,利用这个工具,可以很快速的把好看的图片Pin到你的board中。

    因此你可以一次性在你的Pinterest板上面保存多个内容。保存的方法是单击每个博客文章或者图像,以便单独地将每个文章分别固定在你的Pinterest板上,这样使用起来非常的方便。

    Instagram for Chrome

    安装地址

    https://chrome.google.com/webstore/detail/instagram-for-chrome/opnbmdkdflhjiclaoiiifmheknpccalb/related

    这个工具是干什么用的呢?

    如果你想要实时看到Instagram上面的消息,又嫌一直查看手机太麻烦的话,就可以使用这个应用,它能让你直接在浏览器上面查看Instagram的消息。

    Checkbot

    安装地址

    https://chrome.google.com/webstore/detail/checkbot-seo-web-speed-se/dagohlmlhagincbfilmkadjgmdnkjinl?hl=en

    Checkbot是一款结合了SEO优化技术和安全性的应用,帮助你分析对于搜索引擎来说网站的优化程度和安全性。

    你看这个很重要吧。

    很多人砸了很多钱在广告上,可是网站都没有优化好,那投的广告的意义在哪里,对不对。

    我们知道,谷歌等搜索引擎除了看排名中的内容质量以外,网站的安全性也是一个重要的指标考核,因此这款应用对于SEO内容负责人和网站开发人员来说是很有用的。

    Checkbot是一个功能强大的网站审核员,可以在几分钟内检查(每个站点)250个以上网址的网速、SEO、整体安全性,发现损坏的链接、重复的标题、无效的HTML/CSS/JavaScript,不安全的密码表单、重定向链、混合内容错误等。

    对于网站的排查,非常有效。

    MozBar

    安装地址:

    https://chrome.google.com/webstore/detail/mozbar/eakacpaijcpapndcfffdgphdiccmpknp

    我主要是用这个工具看两点:

    第一:网站的PA和DA值

    第二:网页的质量得分

    Check My Links

    安装地址:

    https://chrome.google.com/webstore/detail/check-my-links/ojkcdipcgfaekbeaelaapakgnjflfglf

    这款应用可以快速扫描网页,显示出哪些链接可以正常工作,哪些链接已经打不开。

    其实呢,可以利用这个工具找404的文章,来做外链,那么这个工具必将会派上用场。

    NoFollow

    安装地址: https://chrome.google.com/webstore/detail/nofollow/dfogidghaigoomjdeacndafapdijmiid/related

    句话,利用这个工具可以快速的查看哪些链接是被索引的,哪些链接是不被索引的。

    如果这个工具检测出来,如上图(红色方框)则代表这个链接其实是不被索引的,不被索引的链接,当然也就是不被传递网站的权重。

    “那啥,啥叫权重啊,啥叫索引啊?

    科普科普

    权重怎么说呢,就是一个网站的综合性指标,就好比,我们经常说一个人一样,我们说他的威望很高。

    你的威望越高,就代表你说话越有份量!

    权重和这个威望其实有点相似,一个网站的权重越高,就越代表他的综合排名啊,网站的各项指标都很好,那么搜索引擎对这样的网站是有加权的。

    所以如果你找一个有权重的网站做推广,可是发现对方设置了nofollow,那对不起,这代表,这个链接是不被Google索引的,也就代表对方的网站是不传递权重的。

    所以做SEO的人可以使用这个扩展来确定外部网站是否通过跟踪的链接或者是索引链接做了外链。

    此外,你还可以在不想被抓取的网页上使用Nofollow链接,例如登陆页面或是感谢页面,使用这个应用可以帮助你轻松仔细地检查编码链接是否正确。如上图Nofollow链接用红框标记出来了。

    OneTab

    安装地址

    https://chrome.google.com/webstore/detail/onetab/chphlpgkkbolifaimnlloiipkdnihall

    我们经常会发现,有时候你的浏览器会不自觉的多开了很多窗口,而一旦你同时开了很多窗口,那么你的电脑运行速度其实会变慢的。

    那么这个工具就可以派上用场了。

    你可以单击OneTab图标,将所有标签页转换成一个列表。当你需要再次访问这些标签时,可以单独或全部恢复它们。

    通过这个方法,它能减少谷歌浏览器打开的标签页的数量,这样可以大大节省高达95%的内存!

    AwesomeScreenshot

    安装地址:

    https://chrome.google.com/webstore/detail/awesome-screenshot-screen/nlipoenfbbikpbjkfpfillcgkoblgpmj

    这款工具很简单,就是一个截图工具。

    和我们经常用到的QQ截图啊,微信截图啊,其实是差不多的。

    只是有时候我没有登录qq或者微信,我就可以直接用工具了。

    另外这个屏幕截图扩展工具,还有注释和照片编辑功能,并能保留在浏览器中。

    在截取屏幕选定区域或整个网页的屏幕截图后,还有裁剪、突出显示、绘制形状以及马赛克等功能。

    功能还是很多的!

    Evernote Web Clipper

    安装地址:

    https://chrome.google.com/webstore/detail/evernote-web-clipper/pioclpoplcdbaefihamjohnefbikjilc

    我相信,凡是使用过印象笔记的,应该会对这个裁剪工具会非常熟悉吧

    通过Evernote Web Clipper这个裁剪工具,比如说,你看到一篇非常好的文章,那么你可以不用手动copy复制,因为这样非常的麻烦,你只要一键点击裁剪按钮,然后整篇文章就会被保存在你印象笔记中的账户中。

    这样今后你可以对保存下来的文章,反复的阅读。

    允许我再次强调下,文章的归纳是非常重要的,有太多的人,做的笔记都非常乱,我建议大家还是多花点时间学学,怎么做笔记。

    不要觉得这些很简单,当你知道如何高效的运用笔记,他所给你带来的价值将是巨大的。

    Evernote Web Clipper,这个功能我经常使用,太方便了,强烈推荐!

    Grammarly

    安装地址:

    https://chrome.google.com/webstore/detail/grammarly-for-chrome/kbfnbcaeplbcioakkpcpgfkobkghlhen?hl=en

    这款工具是用于审查在你博客写完英文文章,或者邮件的时候,利用这个工具可以很好的检查你文章的拼写、语法和单词使用是否正确。

    像我们团队中的内容编辑部门和产品运营部门,基本每天都会用到这个工具!

    一把好的剑,只有被懂得人所掌握,才能发挥出他真正的价值,反之,再好的剑,都是一把废铁。

    对于工具来说,显然这个道理同样适用!

    展开全文
  • C#的扩展方法详解

    千次阅读 2018-07-06 10:03:55
    扩展方法被定义为静态方法,但它们是通过实例方法语法进行调用的。 它们的第一个参数指定该方法作用于哪个类型,并且该参数以 this 修饰符为前缀。 扩展方法当然不能破坏面向对象封装的概念,所以只能是访问所扩展类...

    扩展方法被定义为静态方法,但它们是通过实例方法语法进行调用的。 它们的第一个参数指定该方法作用于哪个类型,并且该参数以 this 修饰符为前缀。 扩展方法当然不能破坏面向对象封装的概念,所以只能是访问所扩展类的public成员。
      扩展方法使您能够向现有类型“添加”方法,而无需创建新的派生类型、重新编译或以其他方式修改原始类型。扩展方法是一种特殊的静态方法,但可以像扩展类型上的实例方法一样进行调用。
    C#扩展方法第一个参数指定该方法作用于哪个类型,并且该参数以 this 修饰符为前缀。
    扩展方法的目的就是为一个现有类型添加一个方法,现有类型既可以是int,string等数据类型,也可以是自定义的数据类型。
    为数据类型的添加一个方法的理解:一般来说,int数据类型有个Tostring的方法,就是把int 数据转换为字符串的类型,比如现在我们想在转换成字符串的时候还添加一点东西,比如增加一个字符 a .那么之前的Tostring就不好使了,因为它只是它我们的int数据转换为string类型的,却并不能添加一个字母 a.所以这就要用到所谓的扩展方法了。
    首先我们看一个给现有的类型增加一个扩展方法。
    我们想给string 类型增加一个Add方法,该方法的作用是给字符串增加一个字母a.


    实例1:

    1. //必须是静态类才可以添加扩展方法
    2. Static class Program
    3. {
    4. static void Main(string[] args)
    5. {
    6. string str = "quzijing";
    7. //注意调用扩展方法,必须用对象来调用
    8. string Newstr = str.Add();
    9. Console.WriteLine(Newstr);
    10. Console.ReadKey();
    11. }
    12. //声明扩展方法
    13. //扩展方法必须是静态的,Add有三个参数
    14. //this 必须有,string表示我要扩展的类型,stringName表示对象名
    15. //三个参数this和扩展的类型必不可少,对象名可以自己随意取如果需要传递参数,//再增加一个变量即可
    16. public static string Add(this string stringName)
    17. {
    18. return stringName+"a";
    19. }
    20. }</span>

    我们再来尝试给我们自定义的类型增加一个扩展方法,并增加一个传递的参数。

    实例2:

    首先我们声明一个Student类,它包含了两个方法StuInfo,getStuInfo.实例代码如下:

    1. public class Student
    2. {
    3. public string StuInfo()
    4. {
    5. return "学生基本信息";
    6. }
    7. public string getStuInfo(string stuName, string stuNum)
    8. {
    9. return string.Format("学生信息:\n" + "姓名:{0} \n" + "学号:{1}", stuName, stuNum);
    10. }
    11. }</span>

    之后我们再声明一个名为ExtensionStudentInfo的静态类,注意必须为静态

    这个类的作用就是包含一些我们想要扩展的方法,在此我们声明两个Student类型的扩展方法,Student类型为我们自定义的类型。示例代码如下:

    1. public static class ExtensionStudentInfo
    2. {
    3. //声明扩展方法
    4. //要扩展的方法必须是静态的方法,Add有三个参数
    5. //this 必须有,string表示我要扩展的类型,stringName表示对象名
    6. //三个参数this和扩展的类型必不可少,对象名可以自己随意取如果需要传递参数,再增加一个变量即可
    7. public static string ExtensionStuInfo(this Student stuName)
    8. {
    9. return stuName.StuInfo();
    10. }
    11. //声明扩展方法
    12. //要扩展的方法必须是静态的方法,Add有三个参数
    13. //this 必须有,string表示我要扩展的类型,stringName表示对象名
    14. //三个参数this和扩展的类型必不可少,对象名可以自己随意取如果需要传递参数,在此我们增加了两个string类型的参数
    15. public static string ExtensionGetStuInfo(this Student student, string stuname, string stunum)
    16. {
    17. return student.getStuInfo(stuname, stunum)+"\n读取完毕";
    18. }
    19. }</span>

    以上的工作做完之后便可以使用我们的扩展方法了,注意必须要用对象来调用扩展方法。
    1. static void Main(string[] args)
    2. {
    3. Student newstudent = new Student();
    4. //要使用对象调用我们的扩展方法
    5. string stuinfo = newstudent.ExtensionStuInfo();
    6. Console.WriteLine(stuinfo);
    7. //要使用对象调用我们的扩展方法
    8. string stuinformation = newstudent.ExtensionGetStuInfo("quzijing", "20081766");
    9. Console.WriteLine(stuinformation);
    10. Console.ReadKey();
    11. }</span>

    实例3、使用TagBuilder类创建扩展方法

    上面自定义的Span()方法十分简单, 但是有时候我们要构造具有复杂结构的Html元素, 如果用字符串拼接的方法就有些笨拙.

    ASP.NET MVC框架提供了一个帮助我们构造Html元素的类:TagBuilder

    TagBuilder类有如下方法帮助我们构建Html控件字符串:

    方法名称用途
    AddCssClass()添加class=””属性
    GenerateId()添加Id,  会将Id名称中的"."替换为IdAttributeDotReplacement 属性值的字符.默认替换成"_"
    MergeAttribute()添加一个属性,有多种重载方法.
    SetInnerText()设置标签内容, 如果标签中没有再嵌套标签,则与设置InnerHTML 属性获得的效果相同.
    ToString()输出Html标签的字符串, 带有一个参数的重载可以设置标签的输出形式为以下枚举值:
    • TagRenderMode.Normal -- 有开始和结束标签
    • TagRenderMode.StartTag -- 只有开始标签
    • TagRenderMode.EndTag -- 只有结尾标签
    • TagRenderMode.SelfClosing -- 单标签形式,如<br/>

    同时一个TagBuilder还有下列关键属性:

    属性名称用途
    AttributesTag的所有属性
    IdAttributeDotReplacement添加Id时替换"."的目标字符
    InnerHTMLTag的内部HTML内容
    TagNameHtml标签名, TagBuilder只有带一个参数-TagName的构造函数.所以TagName是必填属性
    下面在添加一个自定义的HtmlHelper类扩展方法,同样是输出一个<Span>标签:

    1. public static string Span(this HtmlHelper helper, string id, string text, string css, object htmlAttributes)
    2. {
    3. //创意某一个Tag的TagBuilder
    4. var builder = new TagBuilder("span");
    5. //创建Id,注意要先设置IdAttributeDotReplacement属性后再执行GenerateId方法.
    6. builder.IdAttributeDotReplacement = "-";
    7. builder.GenerateId(id);
    8. //添加属性
    9. builder.MergeAttributes(new RouteValueDictionary(htmlAttributes));
    10. //添加样式
    11. builder.AddCssClass(css);
    12. //或者用下面这句的形式也可以: builder.MergeAttribute("class", css);
    13. //添加内容,以下两种方式均可
    14. //builder.InnerHtml = text;
    15. builder.SetInnerText(text);
    16. //输出控件
    17. return builder.ToString(TagRenderMode.Normal);
    18. }</span>

    在页面上,调用这个方法:

    <% =Html.Span("span.test", "使用TagBuilder帮助构建扩展方法", "ColorRed", new { style="font-size:15px;" })%>

    生成的Html代码为:

    <span id="span-test" class="ColorRed" style="font-size: 15px;">使用TagBuilder帮助构建扩展方法</span>

    实例4

    (1)、扩展方法


    1. using System;
    2. using System.Collections.Generic;
    3. using System.Linq;
    4. using System.Text;
    5. using System.Text.RegularExpressions;
    6. //声明扩展方法的步骤:类必须是static,方法是static,
    7. //第一个参数是被扩展的对象,前面标注this。
    8. //使用扩展方法的时候必须保证扩展方法类已经在当前代码中using
    9. namespace 扩展方法
    10. {
    11. //扩展方法必须是静态的
    12. public static class StringHelper
    13. {
    14. //扩展方法必须是静态的,第一个参数必须加上this
    15. public static bool IsEmail(this string _input)
    16. {
    17. return Regex.IsMatch(_input, @"^\\w+@\\w+\\.\\w+$");
    18. }
    19. //带多个参数的扩展方法
    20. //在原始字符串前后加上指定的字符
    21. public static string Quot(this string _input, string _quot)
    22. {
    23. return _quot + _input + _quot;
    24. }
    25. }
    26. }
    27. </span>

    (2)、使用方法


    1. using System;
    2. using System.Collections.Generic;
    3. using System.Linq;
    4. using System.Text;
    5. namespace 扩展方法
    6. {
    7. class Program
    8. {
    9. static void Main(string[] args)
    10. {
    11. string _myEmail = "abc@163.com";
    12. //这里就可以直接使用string类的扩展方法IsEmail了
    13. Console.WriteLine(_myEmail.IsEmail());
    14. //调用接收参数的扩展方法
    15. Console.WriteLine(_myEmail.Quot("!"));
    16. Console.ReadLine();
    17. }
    18. }
    19. }
    20. </span>

    总结:

    在我们的编程生涯中我们要使用很多很多类库,这些类库有的是我们自己开发的,我们有她的代码,有的是第三方发布的,我们不仅没有他们的代码,连看的机会都没有。

    作为.net程序员,我们每天都要和BCL(Base Class Linbrary)打交道。无疑,BCL做为一个年轻的框架类库,她是成功的,但是还有一些时候我们还是得写一些”Helper”方法来扩展类库,由于我们不能修改类库的源代码,我们只有写一个个的静态类。虽然在使用上也算方便,但作为追求完美的程序员来说总有些不雅。 现在我就碰到这样的事情,前两天奉命写一个从XML文件加载Chart图的设置的方法,从XML加载数据绑定到对象上,这肯定是反射的用武之地了。我经常需要写一些根据对象属性名字来判断这个对象是否有这个属性或者根据属性名获取该属性的值。还是按照平常一样,我很快写了一个PropertyHelper,里面有两个静态方法:HasProperty,GetValueByName。

    PropertyHelper.HasProperty(point, "X"),如此的调用也还过得去,不过在C# 3.0微软为我们提供了扩展方法。现在我们可以直接这样调用了point.HasProperty(“X”);看看我是如何实现这个扩展方法的?

    1. public static class PropertyExtension
    2. {
    3. public static object GetValueByName(this object self, string propertyName)
    4. {
    5. if (self == null)
    6. {
    7. return self ;
    8. }
    9. Type t = self.GetType();
    10. PropertyInfo p = t.GetProperty(propertyName);
    11. return p.GetValue(self, null);
    12. }
    13. }</span>

    我给object类型添加了一个扩展方法,在.net里所有的类都继承自object,那所有的类都默认的拥有这个方法了,真方便,呵呵。

    注意到和普通的静态方法有何差别?在这个方法的第一个参数前面多了一个this关键字。

    扩展方法:

    1 方法所在的类必须是静态的

    2 方法也必须是静态的

    3 方法的第一个参数必须是你要扩展的那个类型,比如你要给int扩展一个方法,那么第一个参数就必须是int。

    4 在第一个参数前面还需要有一个this关键字。

    按照上面的步骤写你就得到了一个“扩展方法”,你可以像调用这个类的原生方法那样去调用它:

    string str = "abc";
    object len = str.GetValueByName("Length");

    好像string类型现在有了GetValueByName这个方法一样,但实际上string并没有这样一个方法。那这又是为什么呢?是我们可爱的编译器在其中做了手脚。为了避开编译器的干扰,我们来直接欣赏MSIL代码:

    L_0008: ldstr "Length"
    L_000d: call object TestLambda.PropertyExtension::GetValueByName(objectstring)

    从MSIL中我们可以看出,这段代码编译后和调用静态方法没有任何的差别(从call指令来看,这是在调用一个静态方法)。

    从这里可以知道扩展方法即可以使用实例调用的方式也可以直接使用静态类调用的方式:

    str.GetValueByName("Length");

    PropertyExtension.GetValueByName(str,"Length");

    下面将对扩展方法做一些细节的介绍:

    Visual Studio 2008对扩展方法有智能感知的支持,如下图:

    在方法的图标上有一个与其他的都不相同,他的突变下面还带有一个蓝色的向下的箭头,这就表明这个方法是一个扩展方法。

    下面是对编写扩展方法要注意的几个原则(当然,仁者见仁、智者见智,这也是一家之言):

    扩展方法有就近原则,也就是如果在你的程序里有两个一模一样的扩展方法,一个和你的使用类是处于同一命名空间里,另外一个处于别的命名空间里,这个时候会优先使用同一命名空间里的扩展方法,也就是说“血缘关系”越近,越被青睐。

    很多人看到扩展方法也许眼里冒出金光,以后在设计的时候不管三七二十一,反正可以扩展。还有一些人会对类任意扩展,将以前一些作为”Helper”的方法统统使用扩展方法代替,注意的是扩展方法有“污染性”,所以我觉得在扩展的时候还是想想,是不是值得这样扩展。

    在扩展的时候也不要对比较高层的类进行扩展,像我上面对object的扩展我觉得就是不可取的,object是所有类的基类,一经扩展,所有的类都被“污染”了。


    展开全文
  • 纵向扩展与横向扩展

    万次阅读 2017-05-25 07:46:54
    横向扩展 也叫 水平扩展,用更多的节点支撑更大量的请求。 如成千上万的蚂蚁完成一项搬运工作 纵向扩展 又叫 垂直扩展扩展一个点的能力支撑更大的请求。如利用1个人的能力,如蜘蛛侠逼停火车 Scale ...
    • 横向扩展 也叫 水平扩展,用更多的节点支撑更大量的请求。 如成千上万的蚂蚁完成一项搬运工作

    • 纵向扩展 又叫 垂直扩展,扩展一个点的能力支撑更大的请求。如利用1个人的能力,如蜘蛛侠逼停火车

    Scale horizontally vs. vertically

    Methods of adding more resources for a particular application fall into two broad categories:[4]

    Scale horizontally (scale out)

    To scale horizontally (or scale out) means to add more nodes to a system, such as adding a new computer to a distributed software application. An example might be scaling out from one Web server system to three.

    As computer prices drop and performance continues to increase, low cost "commodity" systems can be used for high performance computing applications such as seismic analysis and biotechnology workloads that could in the past only be handled by supercomputers. Hundreds of small computers may be configured in a cluster to obtain aggregate computing power that often exceeds that of single traditional RISC processor based scientific computers. This model has further been fueled by the availability of high performance interconnects such asMyrinet and InfiniBand technologies. It has also led to demand for features such as remote maintenance and batch processing management previously not available for "commodity" systems.

    The scale-out model has created an increased demand for shared data storage with very high I/O performance, especially where processing of large amounts of data is required, such as in seismic analysis. This has fueled the development of new storage technologies such as object storage devices.

    Scale out solutions for database servers generally seek to move toward a shared nothing architecture going down the path blazed by Google of sharding.

    Scale vertically (scale up)

    To scale vertically (or scale up) means to add resources to a single node in a system, typically involving the addition of CPUs or memory to a single computer. Such vertical scaling of existing systems also enables them to use virtualization technology more effectively, as it provides more resources for the hosted set of operating system and application modules to share.

    Taking advantage of such resources can also be called "scaling up", such as expanding the number of Apachedaemon processes currently running.


    展开全文
  • VS2017必备的插件扩展

    万次阅读 2018-10-25 10:20:54
    “工具善其事,必先利其器!装好这些插件让vs更上一层楼” ReSharper : 首先的是Resharper,这个基本是目前是我开发过程中必备的工具集,唯一的缺点就是吃内存,所以你的内存要是低于8G,就不要使用它了。...

    “工具善其事,必先利其器!装好这些插件让vs更上一层楼”

    • ReSharper  首先的是Resharper,这个基本是目前是我开发过程中必备的工具集,唯一的缺点就是吃内存,所以你的内存要是低于8G,就不要使用它了。它的特点可以快速重构、高亮显示错误、导航和搜索都很方便、智能提示、智能复制这个我特别喜欢等等,用着它你会感受到很多惊喜。

    • Superchargr : 左边增加当前页面的一些方法节点,操作起来很方便!

    • Extensibility Tools :必备工具,他是基于visual studio上的拓展功能,增加了编码显示、智能感知、强化智能提示、代码段处理、自动提示html的标签工具等特点,而且下面提到的部分工具也是基于它的强化。

    • GitHub Extension for Visual Studio 在Visual Studio中连接到GitHub的插件,直接在插件上管理github上的大部分功能都涵盖了。你如果不知道github是啥,请自行搜索。

    • BrowserSync ASP.NET项目的Visual Studio扩展,利用Browser Link来同步表单域项,页面导航和滚动位置。简单来说就是你在开发的时候同时打开了5个页面,它可以帮助你同时刷新这5个页面。
    • Browser Reload on Save 这个工具可以和上面的BrowserSync工具配合,你在修改某个页面的时候,保存了同时所有的页面都会自动保存及刷新哦。

    • CodeMaid 可快速整理代码文件,清理不必要的代码和杂乱的格式。并在开发时实时提供代码复杂度的报告,以便帮助开发人员降低代码复杂度、提高代码质量。

    • ImageOptimizer 它是一个图片的优化工具,优化任何JPEG,PNG、Gif 格式的图片文件,基本可以做到无损优化,1M的图片优化后只有300KB左右。
    • ImageSprites 少侠,听过雪碧图吗?这就是个雪碧图插件。帮助我们把所有的图片都整合在一个图片上,以降低对服务器的请求数量和节约我们的流量。

    • Web Compiler 帮助我们对LESS, Sass, JSX, ES6 和CoffeeScript 这些文件做解析,当然功能比这个要强大点,但是我基本只用了它们,如果你用了前后端分离。估计这个插件就要退出舞台了。
    • Bundler & Minifier 将多个js或者css文件合并为一个文件。道理和雪碧图一样,但是如果你用了前后端分离。估计这个插件就要退出舞台了。

    • File Differ 顾名思义用于比较两个文件的不同之处,自己想想业务场景,是不是很需要啊。

    • File Icons 为解决方案资源管理器无法识别的文件添加图标。简单来说根据后缀名把文件图标改改。

    • File Nesting 帮助您将两个文件嵌套在一起,也可以把嵌套在一起的文件拆开。场景:bootstrap.js可以和bootstrap.min.js折腾成一个文件。
    • Open Command Extension 支持所有类型的控制台,如cmd,PowerShell,Bash等等。您可以通过在选项中设置路径和参数来轻松配置使用哪一个。

    • Indent Guides 为缩进添加竖线。

    • ZenCoding 使用仿CSS选择器的语法来快速开发HTML和CSS ——由Sergey Chikuyonok开发,可以快速提升你的写HTML页面的速度。当然它现在改名叫做“Emmet”了,但是在VS里面依然叫做ZenCoding。GitHub地址:ZenCoding

    • Markdown Editor 一个在visual studio 中的markdown工具,虽然在VS中用markdown工具有点杀鸡用牛刀但是偶尔还是比较实用的。

    • CSS AutoPrefixer 这个工具就可以检测你的CSS,也支持变量、混合宏、未来的CSS特性,内联图像等等。内置了PostCSS 让你少些很多前缀代码。

    • HTML Snippet Pack 帮助你快速写HTML页面提供的代码段,作用和ZenCoding类似。

    • Bootstrap Snippet Pack 使用Bootstrap框架的网页开发人员的代码片段包,超级实用。配合ZenCoding如有神助。

    • JavaScript Snippet Pack 顾名思义,JS的代码段快速工具。

    展开全文
  • 关于符号位扩展你又知道多少

    万次阅读 2019-11-26 10:18:06
    先看两段代码, 一个是C,一个是java。 int _tmain(int argc, _TCHAR* argv[]) { char b = 0x83; short s1 = (short)b; short s2 = (short)(b&0xff); printf("s1 = %d\n", s1);... r...
  • 1.3 可扩展

    千次阅读 2018-01-17 11:27:59
    即使一个系统现在可以可靠地工作,但并不意味着未来它也一定会可靠地工作。造成退化的一个常见的原因...然而,它并不是一个我们可以贴到系统上的一维标签:说“X是可扩展的”或“Y不能扩展”是没有意义的。当然,讨论
  • 扩展和字扩展

    万次阅读 2017-07-26 18:55:00
    字位扩展 存储信息一般是存储在存储器(ROM、RAM)上的 。在实际应用中,经常出现一片ROM或RAM芯片不能满足对存储器容量需求的情况,这就需要用若干片ROM或RAM组合起来 形成一个存储容量更大的存储器。而组合方式有...
  • Visual Studio 2010 多屏幕开发

    千次阅读 热门讨论 2011-09-07 14:44:32
    新的VS支持多屏幕开发,解决了程序员们屏幕紧张的问题。昨天有机会尝试了一把,果然不错。 一、准备工作 ...如果你用的是台式机要首先确保显卡支持双头输出,或者你有一个视频转换器以及三根视频线。...
  • c# 扩展方法详解

    万次阅读 多人点赞 2019-11-15 11:16:40
    扩展方法被定义为静态方法,但它们是通过实例方法语法进行调用的。 它们的第一个参数指定该方法作用于哪个类型,并且该参数以 this 修饰符为前缀。 扩展方法当然不能破坏面向对象封装的概念,所以只能是访问所扩展类...
  • 扩展型的数据库设计(转)

    千次阅读 2018-07-23 16:19:07
    需求缘起 ...  user(uid, name, passwd, nick)  第二版,产品经理增加了年龄,性别两个属性,表结构可能要变成:  user(uid, name, passwd, nick, age, sex) ... 假设数据量和并发量比较大,怎么变?...
  • es6之扩展运算符 三个点(...)

    万次阅读 多人点赞 2019-12-27 00:04:05
    es6之扩展运算符 三个点(...)es6之扩展运算符 三个点(...)对象的扩展运算符数组的扩展运算符总结 es6之扩展运算符 三个点(…) 对象的扩展运算符 理解对象的扩展运算符其实很简单,只要记住一句话就可以: ...
  • es6 扩展运算符 三个点(...)

    万次阅读 多人点赞 2018-03-21 09:20:04
    1 含义扩展运算符( spread )是三个点(...)。它好比 rest 参数的逆运算,将一个数组转为用逗号分隔的参数序列。console.log(...[1, 2, 3]) // 1 2 3 console.log(1, ...[2, 3, 4], 5) // 1 2 3 4 5 [...document....
  • 1、桌面新建excel表格后,打开时,提示“Excel无法打开文件xxx.xlsx,因为文件格式或文件扩展名无效。请确定文件未损坏,并且文件扩展名与文件的格式匹配” 2、点击确认后,通过文件->新建->空白工作簿->另存为->...
  • 关于Chrome 67 以后版本无法离线安装扩展的解决方法

    万次阅读 多人点赞 2018-10-02 12:47:41
    无法离线安装扩展,拖拽crx文件至该页面,Chrome竟然一直提示“无法从该网站添加应用,扩展程序和用户脚本”。 真是日了狗了。 如图: 鄙人是搞C++的,对前端开发虽然有兴趣,但也就是兴趣而已,实际上前端代码...
  • 两台笔记本电脑之间实现屏幕扩展

    万次阅读 热门讨论 2017-05-07 10:47:36
    将旧笔记本变费为宝,作为扩展屏幕使用 转载请注明出处, by hcq908 on csdn.net, 20170105  闲置的旧笔记拿来做扩展屏正合适。但是笔记本电脑屏幕没有采集口,两台笔记本不能直接用VGA或者HDMI线连接起来实现屏幕...
  • win7系统本身无法设置该功能(目前我是不知道哦,...第二部:安装完在扩展屏幕上便会出现任务栏 第三步:在扩展屏下任务栏中右击属性来设置相关的功能。  比如显示Windows按键 这样便解决了两个屏幕双任务栏的功能了。
  • 扩展欧几里德算法详解

    万次阅读 多人点赞 2012-07-25 22:30:37
    扩展欧几里德算法  谁是欧几里德?自己百度去  先介绍什么叫做欧几里德算法  有两个数 a b,现在,我们要求 a b 的最大公约数,怎么求?枚举他们的因子?不现实,当 a b 很大的时候,枚举显得那么的naïve ,...
  • 扩展操作码的总结

    万次阅读 多人点赞 2016-12-06 15:58:25
    需要建立的一种直观的认知是:既然是扩展操作码,就意味着操作码的位数越变越多! 之所以这么强调,是因为常常混淆了操作码的扩展方向。再看扩展的原理: 假设指令字长是16位,平均劈开成4份,高位4位用作操作码,...
  • Kotlin系列之扩展函数

    千次阅读 2019-04-22 23:53:30
    简述: 今天带来的是Kotlin浅谈系列的第五弹,这讲主要是讲利用Kotlin中的扩展函数特性让我们的代码变得更加简单和整洁。扩展函数是Kotlin语言中独有的新特性,利用它可以减少很多的样板代码,大大提高开发的效率;...
  • chrome浏览器中有很多有用的扩展程序, 但是可能因为长城防火墙我们不能直接去扩展程序商店进行下载获取, 如果我们自己电脑上已经通过某种方式添加了扩展程序, 想把它移植到其他没有翻墙或者压根没有网的电脑上去...
1 2 3 4 5 ... 20
收藏数 2,990,839
精华内容 1,196,335
关键字:

扩展