精华内容
下载资源
问答
  • 最近比较火的电影小程序是怎么搭建的?

    千次阅读 热门讨论 2020-12-06 00:56:12
    其实这个起来也还不是没有基础,因为早几年就已经有一大拨电影网站、APP流行起来了,当时这些电影网站或者APP其实就是CMS搭建起来,APP只是加了一个“壳”,专业些可能真是java或者其他语言去开发出来。...
    1. 朋友圈最近莫名的被电影小程序刷屏了,那么电影小程序是怎么来的?又是怎么搭建的呢?听我给你们分析分析!
    2. 其实这个火起来也还不是没有基础的,因为早几年就已经有一大拨电影网站、APP流行起来了,当时这些电影网站或者APP其实就是CMS搭建起来的,APP只是加了一个“壳”,专业些的可能真的是java或者其他语言去开发出来的。
    3. 可能有人会问搭建电影小程序的CMS是什么东东呢?很简单,就是开源的网站,搭建好就可以了。那里面的资源怎么来的呢???可能有人会问到。其实也很简单,就是对接了专业的资源采集站,把别人弄好的资源采集到自己网站来就可以了,资源啥的其实主要还是在别人服务器上。再到最艰难一段时间,电影小程序就火起来了,为啥呢?
    4. 因为微信推出了流量主服务,简单的说,就是可以把你的小程序的流量变现,只要你满足了条件,就可以开通这项服务,于是乎,这么一个东东就出来了,这也就是电影小程序的前因后果,说的比较简单,但是大致就是这样,通过我这么分析,你是不是get到了。
    展开全文
  • 前言我们介绍许多e2e自动化测试工具一类是基于 Selenium 测试框架:robot frameworkgaugeSeleniumBaseseldom(虫师)另一类是基于JS语言的...

    前言

    我们介绍许多e2e的自动化测试工具

    一类是基于 Selenium 的测试框架:

    • robot framework

    • gauge

    • SeleniumBase

    • seldom(虫师)

    另一类是基于JS语言的测试工具:

    • cypress

    • puppeteer

    本质上就是基于Selenium的自动化测试工具,后者在测试人员这个圈子也是未能撼动Selenium的地位,我认为有两个原因,一是Selenium是一个非常成熟的自动化测试工具,有大量的学习资料;另一方面selenium支持Python,没错Python以其简单的语法已经成为了测试人员学习编程语言的不二之选。

    好了,介绍个新的自动化测试工具还要铺垫这么多?这是因为我看了palywright的文档之后,觉得这工具很大概率能在更广泛的群体中流行起来。

    playwright 介绍

    官方:https://playwright.dev/

    介绍

    Playwright enables fast, reliable and capable automation across all modern browsers.

    支持平台&浏览器


    LinuxmacOSWindows
    Chromium 89.0.4344.0
    WebKit 14.1
    Firefox 84.0b9

    支持语言

    • JavaScript and TypeScript: https://github.com/microsoft/playwright

    • Java: https://github.com/microsoft/playwright-java

    • Python: https://github.com/microsoft/playwright-python

    • C#: https://github.com/microsoft/playwright-sharp

    从支持的平台、语言和浏览器来看,是不是有Selenium的味道。所以,playwright 一开始的定位就不是给一个特定的"小众"群体使用的;另外,有微软爸爸维护,从微软这几年拥抱开源的态度来看,这个工具应该会得到持续的支持。这也是我前面推断这个工具大概率会流行起来的原因。

    安装

    不同的语言安装方式不同,根据上面的链接,到对应的项目下面查看安装方式。本文以Python为例。

    安装plywright

    > pip install playwright
    

    安装浏览器

    > python -m playwright install
    
    Downloading chromium v827102 - 89.4 Mb [====================] 100% 0.0s
    chromium v827102 downloaded to C:\Users\fnngj\AppData\Local\ms-playwright\chromium-827102
    Downloading firefox v1205 - 74.9 Mb [====================] 100% 0.0s
    firefox v1205 downloaded to C:\Users\fnngj\AppData\Local\ms-playwright\firefox-1205
    Downloading webkit v1383 - 51.4 Mb [====================] 100% 0.0s
    webkit v1383 downloaded to C:\Users\fnngj\AppData\Local\ms-playwright\webkit-1383
    

    录制脚本

    plywright可以在浏览器中记录用户的互动并生成代码。

    执行命令

    > python -m playwright codegen

    接下来,对录制的脚本做简单的修饰。

    from time import sleep
    from playwright import sync_playwright
    
    
    def run(playwright):
        pw = playwright().start()
        browser = pw.chromium.launch(headless=False)
        context = browser.newContext()
    
        # Open new page
        page = context.newPage()
    
        # Go to https://www.baidu.com/
        page.goto("https://www.baidu.com/")
    
        # Fill input[name="wd"]
        page.fill('input[name="wd"]', "playwright")
    
        # Click input[type="submit"]
        page.click('input[type="submit"]')
    
        sleep(2)
    
        # assert title
        assert page.title() == "playwright_百度搜索"
        # ---------------------
        context.close()
        browser.close()
    
    
    if __name__ == '__main__':
        run(sync_playwright)
    

    从API来看,和大多数自动化工具都差不多。其他文章在介绍playwright时用“不用写一行代码的自动化工具” 就纯属噱头。Selenium IDE 也可以录制,QTP也有录制,这都是十来年前的技术了,录制是万能的,它只是编写自动化的一种辅助工具。

    异步的写法

    playwright官方例子中给出的异步的写法。从它提供的API sync_playwright 的命名也可以看出,它很喜欢异步。

    import asyncio
    from playwright import async_playwright
    
    
    async def main():
        async with async_playwright() as p:
            for browser_type in [p.chromium, p.firefox, p.webkit]:
                browser = await browser_type.launch(headless=False)
                page = await browser.newPage()
                await page.goto('https://www.baidu.com')
                await page.screenshot(path=f'example-{browser_type.name}.png')
                await browser.close()
    
    asyncio.get_event_loop().run_until_complete(main())
    

    小结:

    palywright 和 selenium 都只是提供了一套操作web浏览器的API而已,他们是自动化测试的基础,他们都需要和单元测试框架、设计模式这些结合才能完成自动化测试项目。

    自动化项目的成功与否,取决于被自动化的项目,也取决于测试人员的设计能力,不应该神化任何一款自动化测试工具。

    技术交流群
    为了大家更快速的学习知识,掌握技术,随时沟通交流问题,特组建了技术交流群,大家在群里可以分享自己的技术栈,抛出日常问题,群里会有很多大佬及时解答的,这样我们就会结识很多志同道合的人,长按下图可加我微信,备注:Python即可进群。
    
                  
     扫码加群????
    
    微信公众号长按扫一扫关注公众号????
    
    

    回复:[学习资料]获取最新Python学习资料

    展开全文
  • 可以看看这篇 technical comparison of RethinkDB and MongoDB 里面评论比较中立一些。想听听个人观点,请看@coffeemug what makes RethinkDB different.什么时候RethinkDB是一个不好选择?当你需要用到...
  • 最近无聊 逛社交 看到个比较火的程序员招租的代码如++++++[+++>+++++++>++++++---.>(我是随便贴的代码 不知道会翻译成什么样子) 翻译成联系方式。 brainfuck是一种比较简单的动态语言,这种语言只有八种状态构成如...

    最近无聊 逛社交 看到个比较火的程序员招租的代码如++++++[+++>+++++++>++++++<<-]++.>---.>(我是随便贴的代码 不知道会翻译成什么样子) 翻译成联系方式。

    brainfuck是一种比较简单的动态语言,这种语言只有八种状态构成如下图:(详见百度百科)

    “[ ]“内部实际上是一个循环


    下面是这种语言的java解释器

    import java.io.IOException;
    /**
     * project Interpreter
     * package PACKAGE_NAME
     * Created by xsm on 2016/7/29.
     */
    public class Interpreter {
        private byte[] data = new byte[3000];
        private int point;
        private int index;
        public void run(String src) {
            run(src, src.length());
        }
        public void run(String src, int end){
            while (index < end){
                switch (src.charAt(index)) {
                    case '+':
                        data[point]++;
                        break;
                    case '-':
                        data[point]--;
                        break;
                    case '>':
                        point++;
                        break;
                    case '<':
                        point--;
                        break;
                    case '[':
                        int temp = index;
                        int count = 0;
                        int e = index+1;
                        while (count != 0 || src.charAt(e) != ']') {
                            if (src.charAt(e) == '[') {
                                count++;
                            }
                            if (src.charAt(e) == ']') {
                                count--;
                            }
                            e++;
                        }
                        while (data[point] != 0) {
                            index = temp + 1;
                            run(src, e);
                        }
                        break;
                    case ']':
                        break;
                    case ',':
                        try {
                            data[point] = (byte) System.in.read();
                        } catch (IOException ex) {
                            ex.printStackTrace();
                        }
                        break;
                    case '.':
                        System.out.printf("%c", data[point]);
                        break;
                }
                index++;
            }
    
        }
    }

    打印输出

    /**
     * project Interpreter
     * package PACKAGE_NAME
     * Created by xsm on 2016/7/29.
     */
    public class Demo {
        public static void main(String[] args) {
            String src = "++++++++++[>+++++>++++++>+++++<<<-]>+++++.>---.-.>-.++.++.----.-.<+.";
            Interpreter interpreter = new Interpreter();
            interpreter.run(src);
            System.out.println("   aa");
    
        }
    }
    
    解释器代码中switch语句里,遇到 “ [ ”说明进入到了一个循环里面,在这个循环里面可能还会遇到 “ [ ”,因此需要用到递归调用。遇到 “ ] ”说明最近的一个循环结束,直接执行brack语句。

    展开全文
  • 大家好,作为一名Java老兵,...相比Java在1995年推出,golang算是一门比较的语言了。更是因为有docker,k8s等助力,让golang跟着了起来。不过,看最近几年的发展,并没有像Java一样迅速的起来,相对来说,go...

    大家好,作为一名Java老兵,最近因工作原因需要熟悉一下golang。下面谈一下我对这个语言的一些看法。

     

    听说go语言很火,一个Java老兵怎么看

     

     

    golang出身贵族google,于2009年11月正式宣布推出。相比Java在1995年推出,golang算是一门比较新的语言了。更是因为有docker,k8s等助力,让golang跟着火了起来。不过,看最近几年的发展,并没有像Java一样迅速的火起来,相对来说,golang这10年的发展,并非顺风顺水,竞争产品也在不断增加。

    个人还是比较喜欢golang的,但是作为一个企业级语言,我觉得golang在生态方面还需要加强,在语法上有些复杂。不信,请看。

    一、生态

    生态系统,最早是从生物课本上面学到的。现在看,生态真是太重要了。中国就是因为没有打造出一个软件生态系统,所以20多年过去了,还没有搞出自己的操作系统。golang也是一样,在Java语言中,web项目有tomcat这样的中间件,spring和mybatis框架,日志log4j等,每个组件和中间件都很成熟,有良好的扩展性。但是golang,web开发大部分人用的是gin,url及处理方法,需要在一个main函数中写上好几百行url和处理函数的映射关系,甚至上千行。除了gin,在golang中,很难找到类似spring,mybaitis,log4j这样的框架。生态这方面来看,golang甚至还不如.net。

    golang开发一个web项目

    package main
    
    import "github.com/gin-gonic/gin"
    
    func main() {
        r := gin.Default()
        r.GET("/ping", func(c *gin.Context) {
            c.JSON(200, gin.H{
                "message": "pong",
            })
        })
        r.Run() // listen and serve on 0.0.0.0:8080
    }

    二、复杂语法

    我大学学习的c语言,工作后用的Java,这两种语言,语法上非常相似,关键字也比较少。尽管现在Java8增加了像lamda,函数式接口,stream等新特性,但是其基本类型语法基本上没有变化。但是golang则不一样。下面我从两个方面说一下golang的特别语法之处。

    2.1数组和结构体默认为值传递

    golang的数组和struct,一反常态的竟然是值传递。所以Java和c语言的开发转golang的话,一定要注意这两个特性。

    来个数组传递例子:

    func printAndModify(data [3]int )  {
       fmt.Printf("%d\n" ,data[0])
       data[0]=10
    }
    func main() {
       var data  = [3]int{1, 2, 3}
       printAndModify(data)
       fmt.Printf("%d\n" ,data[0])
    }

    打印结果:

    1
    1

    未声明数组大小的传递。

    func printAndModify(data []int) {
       fmt.Printf("%d\n",data[0])
       data[0] =10
    }
    func main() {
       data := []int {1,2,3}
       printAndModify(data)
       fmt.Printf("%d\n",data[0])
    }

    打印结果

    1
    10

    怎么样,golang够奇妙的吧;

    2.2独特的函数定义

    golang的函数其实和c的函数是一样的,和Java的成员方法不太一样。但是其书写方式一开始还真不习惯,函数返回值在函数定义的最后面。

    习惯了c和java的程序员,这个特性让人很疑惑。

    函数定义

    func 函数名(形式参数列表)(返回值列表){
        函数体
    }

    如下定义了一个返回值为两个int值的函数定义

    func typedTwoValues() (int, int) {
        return 1, 2
    }

    调用使用以下方法

    func main() {
        a, b := typedTwoValues()
        fmt.Println(a, b)
    }

    如果在函数前面加上类型,是什么意思?大家有兴趣可以自己探索一下。

    展开全文
  • 因为在我印象中这几们语言在国内是比较火的,它们都可以用来给服务器编程。 结果发现C语言居然搜索量最低,日均500都不到,被排名第一的Python甩了不知道多少条街! 有图有真相,下面上图: 数据来源:百度搜索 .....
  • python与其他语言进行比较

    千次阅读 2014-10-12 18:49:11
    最近python语言貌似比较火, 今天闲来无事,简单看了下,算是个入门吧。一门语言之所以值得这么多人去学,必定有它独到之处,下面我们就用python和其他语言做个比较。 Pythond VS C# 1. Python跨平台,可以...
  • 摘要:最近几年见证了自然语言处理特别是表示学习的预训练模型的蓬勃发展,基于对比学习的自监督模型是其中最火的一种。BERT是近几年来在多种语言处理任务上取得了突出成就,但是它在需要处理句子的任务(例如聚类或...
  • 文言文编程背后-语言的本质

    千次阅读 2019-12-23 19:52:36
    最近github上有个文言文编程了,效果看起来还比较牛B,看起像是是文言文,读起来也能明白一定意思。(可以留言给我索取官网体验) 上图代码比较简单就是输出三遍hello world; 是不是读起来有文言文样子也...
  • 自然语言处理之Word2Vec

    千次阅读 2017-04-14 08:47:23
    最近google的一个开源的项目Word2Vec比较火,就去大概了解了一下。word2vec可以看做是一个将单词转换成向量形式的工具。那什么是词向量以及什么是语言模型呢?首先来说语言模型。语言模型是根据语言客观事实而进行...
  • Dart是一个怎样的语言

    万次阅读 2015-05-04 02:03:01
    但是Google推出 sky 似乎证明了native的开发方式越来越向web方式靠近的趋势,最近比较火的要数 react-native 了,他们的原理是类似的,都是先构造一个 virtual dom tree,然后只更新发生变化的 dom
  • 前两年就听说go语言,并且它在处理并发问题上有比java,php要好太多,但一直没入手,最近在看区块链中超级账本(Hyperledger)中fabric项目,此项目是IBM和另外两家大公司,前期用不同语言,后面用一个叫黑客...
  • 在 JS(建议把 JS 作为函数式编程思想学习入门语言,Java 实现略显臃肿,可能不太便于理解)当中,函数式编程算是应用比较了。各现代高级编程语言,都或多或少地支持了函数式编程。 一些基本特点总结: ...
  • 排前几的语言比较稳 各种语言的应用领域 C:操作系统、嵌入式(具体包括什么呢) JavaScript:前端基本是JS的天下 Java:大数据、Web开发、微服务 Go:最近几年在Web后端和 发展的比较快 Python:跟着人工...
  • Dive into BERT:语言模型与知识

    万次阅读 2019-11-14 19:50:58
    写在前面 最近在研究的主要是跟知识...今天就以知识为切入点来更深入地剖析一下最近比较火的预训练模型。 1、Language Models as Knowledge Bases?(EMNLP2019) 语言模型可以当做是一种知识库吗? 知识库是一种格式...
  • 为什么Bert最近? 其实Bert并没有重大理论或者模型创新,创新并不算大。主要原因是效果太好了,刷新了很多NLP任务最好性能,有些任务还被刷爆了。另外一点是Bert具备广泛通用性,绝大部分NLP任务都可以...
  • C#和.NET2.0实战:平台、语言与框架 最近卖的比较火的
  • 最近因为公司比较忙..没时间和大家讨论问题...但是还是有许多发烧友过来和俺提问..我没办法一 一  回答,只能抽取一些问的比较了来回答大家..在此也请各位多多包涵...废话不多说..进入主题  在所有面向...
  • python语言拿来干啥

    2021-05-25 19:38:24
    最近这段时间使用Python比较多,简单描述一下相关的经验。 第三方库多 从我的经验出发,Python是一门第三方库特别多的语言,诚然,...最近提得比较火的一个点是,利用Python进行半自动化办公。利用代码,确实可以解决
  • 最有影响力自然语言处理NLP论文

    千次阅读 2016-03-10 12:41:46
    Influential NLP Papers”这篇文章比较有参考价值,不过写于06年初,稍早一些,但是真金不怕炼,就放在这里供大家参考了!  “I conducted a mini survey recently, asking people I knew what they thought ...
  •  在C++这种不是纯面向对象的语言中..运算符都是能重新定义内容的,,,只是原来的一些规则不能被打破...比如运算优先级别,其实这对于一 个初学者来说很难让人理解和习惯这种做法....使得C++在一般人眼中就变的难度...
  • 最近,前端异常火爆,我觉得有以下原因,第一,由于微信开发非常的火,第二,用H5开发一套代码可以运行到ios/andriod两个平台,节省开发成本。第三,开发效率高,我觉得这主要是因为js这门语言的超强灵活性。 ...
  • 最近程序员圈里最火的消息莫过于Python 彻底超越 Java,成为最热门编程语言了。根据 PYPL 近日发布的 7 月编程语言指数榜,Python 保持上涨趋势,本月流行指数再次上涨 5.5%,以 23.59% 的份额甩开 Java 排名第一,...
  • 最近有时间我会从前往后阅读nlper这个博客,发现“Most Influential NLP Papers”这篇文章比较有参考价值,不过写于06年初,稍早一些,但是真金不怕炼,就放在这里供大家参考了!  “I conducted a mini survey ...
  • 在JS(建议把JS作为函数式编程思想学习入门语言,Java实现略显臃肿,可能不太便于理解)当中,函数式编程算是应用比较了。各现代高级编程语言,都或多或少地支持了函数式编程。 一些基本特点总结 相比平常...
  • flutter、rn、uni-app比较

    千次阅读 2019-07-18 11:39:26
    flutter最近比较火,因为Google在一定程度上影响着前端走向。 flutter是Google为Fuchsia操作系统设计应用开发方式。 Fuchsia OS要兼容廉价物联网设备,要求对硬件消耗降低,并且为了避免与oraclejava打...
  • Kotlin和RecyclerView一个demo

    千次阅读 2017-08-04 11:15:10
    Kotlin最近比较火,我简单学了一下,写了个小demo,RecyclerView. 1.使用到东西 语言:Kotlin 不会配置点这里….滑稽 RecyclerView OkHttp3 RxJava RxAndroid Glide Gson 2.需要引入库implementation '...
  • 最近kotlin语言比较火,所以我今天也来学习一下,顺便做个笔记,便于日后复习!!!废话不多说,下面直接进入主题: 定义常量 val a:Int=15 //在kotlin中,val用于定义常量 //定义变量 var b:Int=20 //在...
  • Clojure是最近比较火的一门Lisp方言,它最大的特色在于直接构建在java虚拟机上,可以方便使用java sdk和各种java库。相对说来,Common Lisp就不太方便了,自带的函数库功能少,许多功能要自己去找。有Lisp的爱好者...

空空如也

空空如也

1 2 3 4 5 ... 10
收藏数 185
精华内容 74
关键字:

最近比较火的语言